Lúc này Docker Machine là một máy ảo chạy dưới VirtualBox trong máy của bạn, vì vậy để lộ cổng ứng dụng của bạn, bạn cần ánh xạ cổng máy ảo của bạn đến cổng máy chủ.
Để đạt được điều này có hai lựa chọn, nhưng trước khi đảm bảo chạy máy Docker của bạn được dừng lại:
docker-machine stop default # see PS below if docker machine isn't default
Lựa chọn 1 - Sử dụng giao diện VirtualBox
- mở VirtualBox quản lý
- Chọn hình ảnh Máy ảo của Docker (ví dụ: mặc định)
- Cài đặt mở -> Mạng -> Advanced -> Port Forward
- Thêm tên ứng dụng của bạn, cổng mong muốn chủ (ví dụ: 80) và Khách của cổng (ví dụ: 3000)
Lựa chọn 2 - Sử dụng dòng lệnh VirtualBox
Chỉ cần chạy lệnh sau đây với các thông số của riêng bạn:
VBoxManage modifyvm "dev" --natpf1 "myapp,tcp,,80,,3000"
cân nhắc cuối cùng
Bây giờ bạn có thể bắt đầu Máy Docker của bạn chạy:
docker-machine start default
eval $(docker-machine env default)
Sau đó chỉ cần khởi động phần mềm Docker container của bạn và thử nghiệm nó chạy http://localhost/.
P.S .: Tên máy Docker của bạn có thể không phải là mặc định, trong trường hợp này thay đổi tên cho phù hợp.
Nguồn
2016-03-29 13:54:41
Trong số tất cả các câu trả lời tôi đã khám phá, đây là cách giúp tôi. +1 – Tagc
Không cần phải chạy 'docker-machine stop' trước. Điều này có thể đã thay đổi kể từ khi câu trả lời được đăng, nhưng nó đã đúng trong ít nhất vài tháng qua. – toddkaufmann
Có cách nào để có được bất kỳ/tất cả các cổng ánh xạ tới Docker Host trong VirtualBox không? Dường như rất nhiều rắc rối để thiết lập một cổng mới ràng buộc mỗi lần! –