各位好,今天我們將學習一些Docker容器的基礎命令。Docker 是一個開源項目,提供了一個可以打包、裝載和運行任何應用的輕量級容器的開放平臺。它沒有語言支持、框架和打包系統(tǒng)的限制,從小型的家用電腦到高端服務器,在何時何地都可以運行。它可以使部署和擴展web應用程序、數(shù)據(jù)庫和后端服務像搭積木一樣容易,而不依賴特定技術?;蛱峁┥?。Docker適用于網(wǎng)絡環(huán)境,它正應用于數(shù)據(jù)中心、ISP和越來越多的網(wǎng)絡服務。
因此,這里有一些你在管理Docker容器的時候會用到的一些命令。
1. 找到Docker接口
Docker默認會創(chuàng)建一個名為docker0的網(wǎng)橋接口作為連接外部世界的基礎。運行中的docker容器直接連接到網(wǎng)橋接口docker0。默認上,docker會分配172.17.42.1/16給docker0,它是所有運行中的容器ip地址的子網(wǎng)。找到Docker接口的ip地址非常簡單。要找出docker0網(wǎng)橋接口和連接到網(wǎng)橋上的docker容器,我們可以在安裝了docker的終端或者shell中運行ip命令。
# ip a
2. 得到Docker容器的ip地址
如我們上面讀到的,docker在宿主機中創(chuàng)建了一個叫docker0的網(wǎng)橋接口。在我們創(chuàng)建一個新的docker容器時,它自動被默認分配了一個在該子網(wǎng)范圍內的ip地址。因此,要檢測運行中的Docker容器的ip地址,我們需要進入一個正在運行的容器并用下面的命令檢查ip地址。首先,我們運行一個新的容器并進入其中。如果你已經有一個正在運行的容器,你可以跳過這個步驟。
# docker run -it ubuntu
現(xiàn)在,我們可以運行ip a來得到容器的ip地址了。
# ip a
3. 映射暴露的端口
要映射配置在Dockerfile的暴露端口到宿主機的高位端口,我們只需用下面帶上-P標志的命令。這會打開docker容器的隨機端口并映射到Dockerfile中定義的端口。下面是使用-P來打開/暴露定義的端口的例子。
# docker run -itd -P httpd
上面的命令會映射容器的端口到 httpd 容器的 Dockerfile 中定義的80端口上。我們用下面的命令來查看正在運行的容器暴露的端口。
# docker ps
并且可以用下面的curl命令來檢查。
# curl http://localhost:49153
4. 映射到特定的端口上
我們也可以映射暴露端口或者docker容器端口到我們指定的端口上。要實現(xiàn)這個,我們用-p標志來定義我們所需的端口。這里是我們的一個例子。
# docker run -itd -p 8080:80 httpd
上面的命令會映射(宿主機的)8080端口到(容器的)80上。我們可以運行curl來檢查這點。
# curl http://localhost:8080
5. 創(chuàng)建自己的網(wǎng)橋
要給容器創(chuàng)建一個自定義的IP地址,在本篇中我們會創(chuàng)建一個名為br0的新網(wǎng)橋。要分配需要的ip地址,我們需要在運行docker的宿主機中運行下面的命令。
# stop docker.io
# ip link add br0 type bridge
# ip addr add 172.30.1.1/20 dev br0
# ip link set br0 up
# docker -d -b br0
6. 創(chuàng)建自己的網(wǎng)橋
要給容器創(chuàng)建一個自定義的IP地址,在本篇中我們會創(chuàng)建一個名為br0的新網(wǎng)橋。要分配需要的ip地址,我們需要在運行docker的宿主機中運行下面的命令。
# stop docker.io
# ip link add br0 type bridge
# ip addr add 172.30.1.1/20 dev br0
# ip link set br0 up
# docker -d -b br0
到這里,橋接后的接口將會分配給容器在橋接子網(wǎng)內的新ip地址。
7. 鏈接到另外一個容器上
我們可以用Docker將一個容器連接到另外一個上。我們可以在不同的容器上運行不同的程序,并且相互連接或鏈接。鏈接允許容器間相互連接并從一個容器上安全地傳輸信息給另一個容器。要做到這個,我們可以使用--link標志。首先,我們使用--name標志來標示training/postgres鏡像。
# docker run -d --name db training/postgres
完成之后,我們將容器db與training/webapp鏈接來形成新的叫web的容器。
# docker run -d -P --name web --link db:db training/webapp python app.py
總結
Docker網(wǎng)絡很神奇也好玩,我們可以對docker容器做很多事情。我們可以把玩這些簡單而基礎的docker網(wǎng)絡命令。docker的網(wǎng)絡是非常先進的,我們可以用它做很多事情。
如果你有任何的問題、建議、反饋請在下面的評論欄寫下來以便于我們我們可以提升或者更新文章的內容。謝謝! 玩得開心!:-)