淺談關于Docker容器互聯(lián)的初步實踐
一、Docker容器之間的互聯(lián)
Docker現(xiàn)在已經(jīng)成為一種輕量級的虛擬化方案,在同一宿主機下,所有的容器都可以通過網(wǎng)橋進行互聯(lián)。如果之前有docker的使用經(jīng)驗,可能已經(jīng)習慣了使用–link來對容器進行互聯(lián)。隨著docker的逐步完善,強烈推薦大家使用網(wǎng)橋(bridge)來對容器進行互聯(lián)。
二、實踐過程
1.創(chuàng)建一個網(wǎng)絡my-net:
[root@ChatDevOps ~]# docker network create my-net 71b42506de62797889372ea4a5270f905f79a19cf80e308119c02e529b89c94e [root@ChatDevOps ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 3dec5cbb852e bridge bridge local 6dd6dcfc2f26 host host local 71b42506de62 my-net bridge local 4c142a02cd6b none null local
2.在創(chuàng)建docker容器的時候就指定橋接網(wǎng)絡:
[root@ChatDevOps docker]# docker create -it --name d1 --network my-net -p 8080:80 ubuntu:14.04 4776b65db566f370cad5da3a9354a12c7e4f9badab53647b7e30e1e8f343ae3d [root@ChatDevOps docker]# docker start d1 d1
在該命令中,docker create也可以用docker container create,二者等價。–name指定了容器的名稱,–network指定了該容器的網(wǎng)絡名稱,橋接形式默認為網(wǎng)橋,-p或–publish指定了映射的端口。如果在這一步指定的網(wǎng)絡沒有預先被創(chuàng)建,那么這個容器時無法正常啟動的。此時,可以為該容器創(chuàng)建網(wǎng)絡后再次啟動容器即可。
3.還可以在運行一個docker容器的時候指定一個已經(jīng)創(chuàng)建好的網(wǎng)絡:
[root@ChatDevOps docker]# docker run -it --name d2 --network my-net --publish 8081:80 ubuntu:14.04 /bin/bash root@07fd516911d0:/# ping d1 PING d1 (172.18.0.2) 56(84) bytes of data. 64 bytes from d1.my-net (172.18.0.2): icmp_seq=1 ttl=64 time=0.115 ms root@4776b65db566:/# ping d2 PING d2 (172.18.0.3) 56(84) bytes of data. 64 bytes from d2.my-net (172.18.0.3): icmp_seq=1 ttl=64 time=0.062 ms
通過容器名稱即可ping通在同一網(wǎng)橋的容器。也可以直接ping其IP。
三、總結
1.在docker安裝完成之后,docker容器有三個網(wǎng)絡,如下:
[root@ChatDevOps ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 3dec5cbb852e bridge bridge local 6dd6dcfc2f26 host host local 4c142a02cd6b none null local
2.在同一網(wǎng)絡中的所有容器網(wǎng)絡都是互通的。
3.容器的網(wǎng)絡配置中的dns配置可以在主機的/etc/docker/daemon.json文件進行配置,參照官方格式:
{
"bip": "192.168.1.5/24",
"fixed-cidr": "192.168.1.5/25",
"fixed-cidr-v6": "2001:db8::/64",
"mtu": 1500,
"default-gateway": "10.20.1.1",
"default-gateway-v6": "2001:db8:abcd::89",
"dns": ["10.20.1.2","10.20.1.3"]
}
根據(jù)實際情況進行配置即可。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
在Ubuntu?Server?22.04上安裝?Docker的詳細步驟記錄
通過使用容器技術,Docker能夠讓開發(fā)人員將應用及其依賴環(huán)境一同打包,從而實現(xiàn)快速部署、一致的開發(fā)環(huán)境和優(yōu)秀的可移植性,這篇文章主要給大家給大家介紹了關于在Ubuntu?Server?22.04上安裝?Docker詳細步驟的相關資料,需要的朋友可以參考下2024-08-08
Dockerfile中yum install無法使用的問題及解決
在使用Dockerfile自定義CentOS 7容器過程中,可能會遇到容器內(nèi)無法使用yum命令的問題,首先,確認主機是否能聯(lián)網(wǎng),其次,檢查在Dockerfile打包新容器時,容器是否能聯(lián)網(wǎng),若發(fā)現(xiàn)容器無法聯(lián)網(wǎng),一種解決方法是編輯/etc/docker/daemon.json文件2024-11-11

