小編給大家分享一下Dockers容器的使用示例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕10年,專業(yè)且經(jīng)驗(yàn)豐富。10年網(wǎng)站優(yōu)化營銷經(jīng)驗(yàn),我們已為上1000家中小企業(yè)提供了成都網(wǎng)站建設(shè)、做網(wǎng)站解決方案,按需求定制制作,設(shè)計(jì)滿意,售后服務(wù)無憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!
運(yùn)行一個(gè)容器,給它一個(gè)名稱,例如:
docker run -d -p 0.0.0.0:4455:22 -p 0.0.0.0:8080:80 --name one centos6-ssh
再運(yùn)行另一個(gè)容器
docker run -d -p 0.0.0.0:4456:22 -p 0.0.0.0:8088:80 --link /one:two centos6-ssh3 env
說明:
/one:two
one是第一個(gè)容器的名稱,two是第二個(gè)容器的名稱,
env是打印出來 第二個(gè)容器的環(huán)境變量
這樣兩容器就建立起一個(gè)網(wǎng)絡(luò)通道,one和two容器所開放的端口也就是Dockerfile文件中定義開放的端口就可以連通了,
在宿主機(jī)上使用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
從這里看到兩個(gè)容器間端口可以互相的訪問了,
說明:
這里的端口是以one這個(gè)容器所開放的端口,如one開放22,3306,而two容器只開放了22,在two上也會(huì)放3306給one,反之就不行了。--link是以連接容器開放的端口為準(zhǔn)的。
一個(gè)數(shù)據(jù)卷就是經(jīng)過特殊設(shè)計(jì)的,在一個(gè)或多個(gè)容器中通過UFS文件系統(tǒng)提供的一些特性
實(shí)現(xiàn)數(shù)據(jù)持久化或共享.
數(shù)據(jù)卷可以在容器之間共享和重復(fù)利用
可以對(duì)數(shù)據(jù)卷里的內(nèi)容直接進(jìn)行修改
對(duì)鏡像的更新不會(huì)改變數(shù)據(jù)卷的內(nèi)容
卷會(huì)一直持續(xù)到?jīng)]有容器使用他們
可以使用帶有 -v 參數(shù)的 docker run 命令給容器添加一個(gè)數(shù)據(jù)卷.
docker run -d -p 0.0.0.0:4445:22 --name data -v /data centos6-ssh
這個(gè)在容器里就會(huì)有一個(gè)/data的卷
在Dockefile中使用VOLUME指令來創(chuàng)建添加一個(gè)或多個(gè)數(shù)據(jù)卷
使用-v參數(shù)也可以掛載宿主的文件夾到容器里
docker run -d -p 0.0.0.0:44455:22 --name data1 -v /src/data:/opt/data centos6-ssh
這樣會(huì)把本地的/src/data文件夾掛在容器/opt/data目錄
宿主機(jī)上的文件夾必須是絕對(duì)路徑,而且當(dāng)文件夾不存在時(shí)會(huì)自動(dòng)創(chuàng)建
此功能在Dockerfile文件中無法使用
默認(rèn)情況下Docker以讀寫權(quán)限掛載數(shù)據(jù)卷,但是我們也可以以只讀方式進(jìn)行掛載
docker run -d -p 0.0.0.0:44455:22 --name data1 -v /src/data:/opt/data:ro centos6-ssh
還是上面的那個(gè)命令,只是我們添加了一個(gè)ro選項(xiàng)來制定掛載時(shí)文件權(quán)限應(yīng)該是只讀的
如果一些數(shù)據(jù)需要在容器間共享最好的方式來創(chuàng)建一個(gè)數(shù)據(jù)卷容器,然后從數(shù)據(jù)卷容器中掛載數(shù)據(jù)
docker run -d -v /dbdata --name dbdata centos6-ssh
docker run -d --volumes-from dbdata --name db1 centos6-ssh3
docker run -d --volumes-from dbdata --name db2 centos6-ssh4
可以使用多個(gè) -–volumes-from 參數(shù)來把多個(gè)容器中的多個(gè)數(shù)據(jù)卷放到一起
可以掛載通過掛載dbdata容器實(shí)現(xiàn)的容器db1和db2來擴(kuò)展關(guān)系鏈,例如:
docker run -d --name db2 --volumes-from db1 centos6-ssh5
使用它們來進(jìn)行備份,恢復(fù)或遷移數(shù)據(jù).如下所示,我們使用
–volumes-from 標(biāo)記來創(chuàng)建一個(gè)掛載了要備份數(shù)據(jù)卷的容器.
docker run --volumes-from dbdata -v $(pwd):/backup centos6-ssh tar cvf /backup/backup.tar /dbdata
這里我們創(chuàng)建并登錄了一個(gè)新容器,掛載了dbdata容器中的數(shù)據(jù)卷,并把本地的一個(gè)目錄掛載了/backup下,最后再傳一條tar命令來備份dbdata卷到/backup下,當(dāng)命令執(zhí)行完成后容器就會(huì)停止運(yùn)行,并保留dbdata的備份,在本地目錄下會(huì)一個(gè)備份的文件
注:新創(chuàng)建的容器中要有tar命令,
得到備份數(shù)據(jù)就可以恢復(fù)或遷移數(shù)據(jù)了
看完了這篇文章,相信你對(duì)“Dockers容器的使用示例”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!