因為docker 中的 container 是相互隔離的,所以在不同的container中想要能夠互相連接,就需要把這些 container 都設定為同一個 network(網絡),就像是一個橋接的角色,把本來兩個不相關聯的container透過network能夠關聯在一起,這樣才能彼此連接通信。
預設會產生bridge / host / none 三種 network
為docker默認的預設網絡模式,在bridge模式下,docker container可以連接到同一網絡上的其他container。
# 配置容器的主機名
docker run --name <自定義container_name> --network bridge -h <自定義主機名> -it --rm testNetwork
不會為container創建自己的IP,container會與主機共享相同的網絡,因此可以使用主機的IP位址,外部主機就可以與這個container直接連接。(但要特別留意port號是否有與主機衝突)
可使用以下方式拜訪 → localhost:port 或 <主機IP地址>:port
較少使用,主要是不會為container分配IP位址,通常用於不需要網絡連接的container。詳請可瀏覽官方說明。
使用 docker network --help
可查看可使用的指令
connect Connect a container to a network
# 創建一個 network 預設會是 bridge 橋接模式
# docker network create <network_name>
create Create a network
disconnect Disconnect a container from a network
# 查詢指定的 network 詳細資訊,會列出當中有哪些container
# docker network inspect <network_name>
inspect Display detailed information on one or more networks
# 列出所有 network
ls List networks
prune Remove all unused networks
# 刪除指定的 network
rm Remove one or more networks
docker network ls
docker network rm <network id 或 network name>
docker network inspect goal-life_web_app