基礎的 Docker 容器網絡命令

pdce 9年前發布 | 25K 次閱讀 Docker

各位好,今天我們將學習一些Docker容器的基礎命令。Docker 是一個開源項目,提供了一個可以打包、裝載和運行任何應用的輕量級容器的開放平臺。它沒有語言支持、框架和打包系統的限制,從小型的家用電腦到高端服務 器,在何時何地都可以運行。它可以使部署和擴展web應用程序、數據庫和后端服務像搭積木一樣容易,而不依賴特定技術棧或提供商。Docker適用于網絡 環境,它正應用于數據中心、ISP和越來越多的網絡服務。

因此,這里有一些你在管理Docker容器的時候會用到的一些命令。

基礎的 Docker 容器網絡命令

1. 找到Docker接口

Docker默認會創建一個名為docker0的網橋接口作為連接外部世界的基礎。運行中的docker容器直接連接到網橋接口docker0。 默認上,docker會分配172.17.42.1/16給docker0,它是所有運行中的容器ip地址的子網。找到Docker接口的ip地址非常簡 單。要找出docker0網橋接口和連接到網橋上的docker容器,我們可以在安裝了docker的終端或者shell中運行ip命令。

# ip a 

基礎的 Docker 容器網絡命令

2. 得到Docker容器的ip地址

如我們上面讀到的,docker在宿主機中創建了一個叫docker0的網橋接口。在我們創建一個新的docker容器時,它自動被默認分配了一 個在該子網范圍內的ip地址。因此,要檢測運行中的Docker容器的ip地址,我們需要進入一個正在運行的容器并用下面的命令檢查ip地址。首先,我們 運行一個新的容器并進入其中。如果你已經有一個正在運行的容器,你可以跳過這個步驟。

# docker run -it ubuntu 

現在,我們可以運行ip a來得到容器的ip地址了。

# ip a 

基礎的 Docker 容器網絡命令

3. 映射暴露的端口

要映射配置在Dockerfile的暴露端口到宿主機的高位端口,我們只需用下面帶上-P標志的命令。這會打開docker容器的隨機端口并映射到Dockerfile中定義的端口。下面是使用-P來打開/暴露定義的端口的例子。

# docker run -itd -P httpd 

基礎的 Docker 容器網絡命令

上面的命令會映射容器的端口到 httpd 容器的 Dockerfile 中定義的80端口上。我們用下面的命令來查看正在運行的容器暴露的端口。

# docker ps 

并且可以用下面的curl命令來檢查。

# curl http://localhost:49153 

基礎的 Docker 容器網絡命令

4. 映射到特定的端口上

我們也可以映射暴露端口或者docker容器端口到我們指定的端口上。要實現這個,我們用-p標志來定義我們所需的端口。這里是我們的一個例子。

# docker run -itd -p 8080:80 httpd 

上面的命令會映射(宿主機的)8080端口到(容器的)80上。我們可以運行curl來檢查這點。

# curl http://localhost:8080 

基礎的 Docker 容器網絡命令

5. 創建自己的網橋

要給容器創建一個自定義的IP地址,在本篇中我們會創建一個名為br0的新網橋。要分配需要的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 

基礎的 Docker 容器網絡命令

創建完docker網橋之后,我們要讓docker的守護進程知道它。

# echo 'DOCKER_OPTS="-b=br0"' >> /etc/default/docker # service docker.io start 

基礎的 Docker 容器網絡命令

到這里,橋接后的接口將會分配給容器在橋接子網內的新ip地址。

6. 鏈接到另外一個容器上

我們可以用Docker將一個容器連接到另外一個上。我們可以在不同的容器上運行不同的程序,并且相互連接或鏈接。鏈接允許容器間相互連接并從一 個容器上安全地傳輸信息給另一個容器。要做到這個,我們可以使用--link標志。首先,我們使用--name標志來標示 training/postgres鏡像。

# docker run -d --name db training/postgres 

基礎的 Docker 容器網絡命令

完成之后,我們將容器db與training/webapp鏈接來形成新的叫web的容器。

# docker run -d -P --name web --link db:db training/webapp python app.py 

基礎的 Docker 容器網絡命令

總結

Docker網絡很神奇也好玩,我們可以對docker容器做很多事情。我們可以把玩這些簡單而基礎的docker網絡命令。docker的網絡是非常先進的,我們可以用它做很多事情。

如果你有任何的問題、建議、反饋請在下面的評論欄寫下來以便于我們我們可以提升或者更新文章的內容。謝謝! 玩得開心!:-)

via: http://linoxide.com/linux-how-to/networking-commands-docker-containers/

作者: Arun Pyasi 譯者: geekpi 校對: wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

來源: http://linux.cn/article-5602-1.html
 本文由用戶 pdce 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!