運行一個容器,給它一個名稱,例如:docker
docker run -d -p 0.0.0.0:4455:22 -p 0.0.0.0:8080:80 --name one centos6-ssh
再運行另外一個容器shell
docker run -d -p 0.0.0.0:4456:22 -p 0.0.0.0:8088:80 --link /one:two centos6-ssh2 env
說明:centos
/one:two 網絡
one是第一個容器的名稱,two是第二個容器的名稱,ssh
env是打印出來 第二個容器的環境變量tcp
這樣兩容器就創建起一個網絡通道,one和two容器所開放的端口也就是Dockerfile文件中定義開放的端口就能夠連通了,spa
在宿主機上使用iptables命令來查看,例如:設計
iptables -L -n Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT tcp -- 172.17.1.28 172.17.1.29 tcp spt:3306 ACCEPT tcp -- 172.17.1.29 172.17.1.28 tcp dpt:3306 ACCEPT tcp -- 172.17.1.28 172.17.1.29 tcp spt:22 ACCEPT tcp -- 172.17.1.29 172.17.1.28 tcp dpt:22
從這裏看到兩個容器間端口能夠互相的訪問了,code
說明:ip
這裏的端口是以one這個容器所開放的端口,如one開放22,3306,而two容器只開放了22,在two上也會放3306給one,反之就不行了。--link是以鏈接容器開放的端口爲準的。
一個數據卷就是通過特殊設計的,在一個或多個容器中經過UFS文件系統提供的一些特性
實現數據持久化或共享.
數據卷能夠在容器之間共享和重複利用
能夠對數據卷裏的內容直接進行修改
對鏡像的更新不會改變數據卷的內容
卷會一直持續到沒有容器使用他們
可使用帶有 -v 參數的 docker run 命令給容器添加一個數據卷.
docker run -d -p 0.0.0.0:4445:22 --name data -v /data centos6-ssh
這個在容器裏就會有一個/data的卷
在Dockefile中使用VOLUME指令來建立添加一個或多個數據卷
使用-v參數也能夠掛載宿主的文件夾到容器裏
docker run -d -p 0.0.0.0:44455:22 --name data1 -v /src/data:/opt/data centos6-ssh
這樣會把本地的/src/data文件夾掛在容器/opt/data目錄
宿主機上的文件夾必須是絕對路徑,並且當文件夾不存在時會自動建立
此功能在Dockerfile文件中沒法使用
默認狀況下Docker以讀寫權限掛載數據卷,可是咱們也能夠以只讀方式進行掛載
docker run -d -p 0.0.0.0:44455:22 --name data1 -v /src/data:/opt/data:ro centos6-ssh
仍是上面的那個命令,只是咱們添加了一個ro選項來制定掛載時文件權限應該是隻讀的
若是一些數據須要在容器間共享最好的方式來建立一個數據卷容器,而後從數據卷容器中掛載數據
docker run -d -v /dbdata --name dbdata centos6-ssh
docker run -d --volumes-from dbdata --name db1 centos6-ssh2
docker run -d --volumes-from dbdata --name db2 centos6-ssh3
可使用多個 -–volumes-from 參數來把多個容器中的多個數據卷放到一塊兒
能夠掛載經過掛載dbdata容器實現的容器db1和db2來擴展關係鏈,例如:
docker run -d --name db2 --volumes-from db1 centos6-ssh4
使用它們來進行備份,恢復或遷移數據.以下所示,咱們使用
–volumes-from 標記來建立一個掛載了要備份數據卷的容器.
docker run --volumes-from dbdata -v $(pwd):/backup centos6-ssh tar cvf /backup/backup.tar /dbdata
這裏咱們建立並登陸了一個新容器,掛載了dbdata容器中的數據卷,並把本地的一個目錄掛載了/backup下,最後再傳一條tar命令來備份dbdata捲到/backup下,當命令執行完成後容器就會中止運行,並保留dbdata的備份,在本地目錄下會一個備份的文件
注:新建立的容器中要有tar命令,
獲得備份數據就能夠恢復或遷移數據了