2016-02-23 30 views
9

Tôi có vùng chứa dock CentOS trên máy chủ dock CentOS. Khi tôi sử dụng lệnh này để chạy hình ảnh docker docker run -d --net=host -p 8777:8777 ceilometer:1.x vùng chứa docker có được IP của máy chủ nhưng không có cổng được gán cho nó.Vùng chứa Docker không hiển thị cổng khi --net = host được đề cập trong lệnh docker run

Nếu tôi chạy cùng một lệnh mà không có trình cắm "--net = host" docker run -d -p 8777:8777 ceilometer:1.x sẽ hiển thị các cổng nhưng có IP khác. Phiên bản docker là 1.10.1. Tôi muốn các container docker có cùng IP như máy chủ với các cổng tiếp xúc. Tôi cũng đã đề cập trong hướng dẫn Dockerfile hướng dẫn EXPOSE 8777 nhưng không sử dụng khi "--net = host" được đề cập trong lệnh docker run.

+0

Câu hỏi ở đây là gì? – cantSleepNow

+0

"không có cổng được chỉ định cho nó": làm thế nào để bạn xác định điều đó? – VonC

+0

Bạn xác định cổng nào được dockstat sử dụng bởi netstat hoặc bạn có thể sử dụng cổng docker arevur

Trả lời

10

Phiên bản trình docker là 1.10.1. Tôi muốn các docker container để có cùng một ip như các máy chủ lưu trữ với các cổng tiếp xúc.

Khi bạn sử dụng --net=host nó sẽ cho vùng chứa sử dụng ngăn xếp mạng của máy chủ. Vì vậy, bạn không thể hiển thị các cổng cho máy chủ, bởi vì nó máy chủ (theo như chồng mạng có liên quan).

docker inspect có thể không hiển thị cổng tiếp xúc, nhưng nếu bạn có ứng dụng đang nghe trên cổng, ứng dụng sẽ có sẵn như thể đang chạy trên máy chủ lưu trữ.

+1

Các cổng này không hiển thị khi bạn thực hiện netstat? Để kiểm tra điều này tôi chạy: docker run -it --rm --net container: cass1 poklet/cassandra cqlsh Và không thấy "ExposedPorts" nhưng netstat hiển thị không có gì hoặc là – kisna

+0

Có và có. Bạn không thấy cổng kiểm tra. Nhưng nếu nó hoạt động và quá trình của bạn hoạt động netstat hoặc lsof hiển thị cổng 'sudo lsof -i | grep LISTEN' -> 'node 1799 199 12u IPv6 247434980 0t0 TCP *: 3443 (LISTEN)' –

+0

và nếu tôi chạy với docker-compose thì sao? Tôi đã thử gỡ bỏ các cổng mà không thiếu :-( – ItayB

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