2016-03-08 52 views
6

Tôi mới sử dụng Docker và dường như tôi không thể kết nối với bất kỳ vùng chứa nào.Không thể kết nối với vùng chứa Docker trên OSX

Tôi đã cài đặt Docker Toolbox. Bây giờ tôi đang cố gắng để có được Shipyard để làm việc. Tôi đã làm theo các bước bên trong của một Docker Quickstart Terminal. Các hướng dẫn cho biết:

Khi được triển khai, tập lệnh sẽ xuất URL để kết nối cùng với thông tin xác thực.

Trình cài đặt Nhà máy đóng tàu kết thúc với:

Shipyard available at http://10.0.2.15:8080 
Username: [elided] Password: [elided] 

Tuy nhiên, tôi đi đến http://10.0.2.15:8080 trên trình duyệt của tôi và nó không kết nối.

Trong một Docker Quickstart Terminal, tôi đã làm một docker ps để xem những gì container đã và để có được địa chỉ IP của nó và tôi đã nhận:

$ docker inspect a4755 | grep IPAddress 
      "SecondaryIPAddresses": null, 
      "IPAddress": "172.17.0.8", 
        "IPAddress": "172.17.0.8", 

Tôi không chắc chắn lý do tại sao chỉ IP là khác nhau, nhưng tôi cố gắng kết nối với http://172.17.0.8:8080 và điều này không hoạt động. http://localhost:8080 cũng không thành công.

Điều này cũng xảy ra khi tôi cố gắng chạy docker-gunicorn-nginx - mọi thứ đã bắt đầu nhưng tôi không thể kết nối với máy.

Điều gì mang lại?

Trả lời

13

Nếu bạn đọc qua Docker của Installation on Mac OS X bạn sẽ thấy rằng trên OSX, container Docker không chạy trên máy chủ riêng của mình:

Trong một cài đặt Docker trên Linux, máy vật lý của bạn là cả localhost và máy chủ Docker. Trong mạng, localhost nghĩa là máy tính của bạn. Máy chủ Docker là máy tính chạy các thùng chứa.

Trên cài đặt Linux điển hình, trình khách Docker, trình nền Docker và bất kỳ vùng chứa nào chạy trực tiếp trên máy chủ cục bộ của bạn. Điều này có nghĩa là bạn có thể giải quyết các cổng trên một vùng chứa Docker bằng cách sử dụng địa chỉ localhost chuẩn như localhost: 8000 hoặc 0.0.0.0:8376.

[...]

Trong quá trình cài đặt OS X, trình cắm docker đang chạy bên trong máy ảo Linux được gọi mặc định. Mặc định là một máy ảo Linux nhẹ được thiết kế đặc biệt để chạy trình nền của Docker trên Mac OS X. Máy ảo chạy hoàn toàn từ RAM, là một tải xuống nhỏ ~ 24MB và khởi động trong khoảng 5 giây.

Trong OS X, địa chỉ máy chủ Docker là địa chỉ của máy ảo Linux. Khi bạn khởi động VM với docker-machine, nó được gán một địa chỉ IP. Khi bạn khởi động một thùng chứa, các cổng trên một bản đồ vùng chứa đến các cổng trên máy ảo. Để thấy điều này trong thực tế, hãy làm việc thông qua các bài tập trên trang này.

Thật vậy, mở một Docker Quickstart ga mới, tôi thấy:

docker is configured to use the default machine with IP 192.168.99.100 

Và, mở http://192.168.99.100:8080 đưa tôi đến Nhà máy đóng tàu. Sự thành công!

3

Bạn có thể thử và thực hiện lệnh này:

docker-machine ip default 

nó sẽ trở lại một số điều như:

192.168.99.100 

Để có được số cổng:

docker ps 

Ví dụ đầu ra (di chuyển sang phải để xem ánh xạ cổng):

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS     NAMES 
113346425f20  springio/spring1 "sh -c 'java $JAVA_OP" 34 minutes ago  Up 34 minutes  0.0.0.0:8080->8080/tcp pensive_kirch 

Để xác minh làm nếu nó đang làm việc:

curl 192.168.99.100:8080

Các vấn đề liên quan