關於docker容器中socket配置埠問題

2021-10-24 04:45:36 字數 565 閱讀 2468

首先,我們在創造容器時,如果不指定埠對映,那麼這個容器時封閉的,不能與外界網路通訊。而我們一般情況下則需要指定埠對映,使得我們可以通過主機的埠訪問到容器。我們常用

docker container run -p 8080:80 -d *progamme_name

*這裡我們將容器的80埠對映到主機的8080埠,之後我們就可以通過主機的8080埠訪問到容器了。如果想要公開容器的所有埠,則可以用

docker container run -p

系統會「隨機」分配埠到主機埠。

我們在容器內執行乙個python的socket服務時,這時需要制定繫結的ip和埠,我們需要注意的是我們雖然映**埠到主機,但是繫結的ip不是主機的ip,而是容器內的ip,可以通過ifconfig進行查詢,或者直接使用0.0.0.0來接受所有ip的該埠請求

這裡有個基礎知識,127.0.0.1是每台主機的環迴位址,只用來自身的網路測試,而不會和外部通訊,然後還有inet內部ip,用於乙個公網集群內的主機間的通訊,外網訪問不了,公網ip一般是多台主機共享。最後0.0.0.0則是表示所有可用的ip.

關於Docker容器中的DNS配置

1 啟動時指定 docker run dns 8.8.8.8 busybox latest 2 全域性配置 vi etc docker daemon.json systemctl daemon reload systemctl restart docker 如果宿主機配置了dns,並且沒有使用上述兩...

Docker容器中執行docker 命令

一 在一台執行了docker的伺服器上,啟動374c3bec1f4b 映象的容器,這個映象中安裝docker yum install docker y docker run itd v var run docker.sock var run docker.sock name docker test ...

docker中nginx容器和php容器混合執行

該容器在文章 php環境容器大 制得,亦可用docker官方提供的php環境 啟動php容器 docker run name php1 v home wwwroot service config php config usr local php etc v home wwwroot home www...