武漢外貿(mào)網(wǎng)站制作百度一下移動版首頁
一、數(shù)據(jù)卷(容器與宿主機之間數(shù)據(jù)共享)?
數(shù)據(jù)卷是一個供容器使用的特殊目錄,位于容器中??蓪⑺拗鳈C的目錄掛載到數(shù)據(jù)卷上,對數(shù)據(jù)卷的修改操作立刻可見,并且更新數(shù)據(jù)不會影響鏡像,從而實現(xiàn)數(shù)據(jù)在宿主機與容器之間的遷移。數(shù)據(jù)卷的使用類似于Linux下對目錄進行的mount操作。?
想要將容器中的數(shù)據(jù)持久化,可以將宿主機目錄掛載到容器中。
一般只建議在創(chuàng)建容器時進行掛載,不建議啟動容器后再掛載。因為啟動容器后再掛載的話,需要修改配置文件,且不一定能掛載成功。
docker run -v 數(shù)據(jù)卷 #在容器內(nèi)創(chuàng)建數(shù)據(jù)卷?docker run -v 宿主機目錄:數(shù)據(jù)卷 #將宿主機目錄掛載到容器中#注意:宿主機本地目錄的路徑必須是使用絕對路徑。如果路徑不存在,Docker會自動創(chuàng)建相應的路徑。#掛載后的目錄默認可讀可寫docker run -id --name tomcat1 -v /opt/:/mnt/ tomcat:9.0
#如果希望掛載后的目錄為只讀目錄,可以在掛載時加:ro參數(shù)docker run -v 宿主機目錄:數(shù)據(jù)卷:ro #將宿主機目錄掛載到容器中,只可讀docker run -id --name tomcat2 -v /opt/:/mnt:ro tomcat:9.0
?
二、數(shù)據(jù)卷容器(容器與容器之間數(shù)據(jù)共享)?
有時時候,容器之間共享一些數(shù)據(jù),最簡單的方法就是使用數(shù)據(jù)卷容器。數(shù)據(jù)卷容器是一個普通的容器,專門提供數(shù)據(jù)卷給其他容器掛載使用。?
#創(chuàng)建數(shù)據(jù)卷容器co1。創(chuàng)建/data1和/data2兩個數(shù)據(jù)卷。docker run -id --name co1 -v /data1 -v /data2 -itd centos:7docker exec -it co1 bash #進入web2容器#使用--volumes-from 來掛載co1容器中的數(shù)據(jù)卷到新的容器co2docker run -id --volumes-from co1 --name co2 centos:7docker exec -it co2 bash #進入web3容器
?
三、容器互聯(lián)(使用centos鏡像)?
容器互聯(lián)是通過容器的名稱在容器間建立一條專門的網(wǎng)絡通信隧道。簡單點說,就是會在源容器和接收容器之問建立一條隧道,接收容器可以看到源容器指定的信息。
3.1 實現(xiàn)容器互聯(lián)
#創(chuàng)建并運行源容器取名c1docker run -itd -P --name c1 centos:7 /bin/bash#創(chuàng)建并運行接收容器取名c2,使用--1ink選項指定連接容器c1以實現(xiàn)容器互聯(lián)。docker run -itd -P --name c2 --link c1:c2 centos:7 /bin/bash##--link 容器名:連接的別名?#進c2容器,ping c1,通過容器名稱或者別名都可以通信docker exec -it c2 bash#可以看到c1容器的IP地址?#進入c1容器,查看c1的IP地址docker exec -it c1 bashyum install -y net-tools #下載網(wǎng)絡工具ifconfig #查看IP和c2中顯示的一致
?
3.2 只通過IP進行通信??
#創(chuàng)建容器c3,沒有與c1做互聯(lián)docker run -itd -P --name c3 centos:7 /bin/bashdocker exec -it c3 bash #進入容器c3#通過c1的容器名稱和別名,都無法和c1通信ping c1 #提示:ping: c1: Name or service not knownping C1 #提示:ping: C1: Name or service not known#只能通過IP進行通信
?
總結
命令 | 說明 |
docker run -v 宿主機目錄:數(shù)據(jù)卷 | 將宿主機的目錄掛載到容器的目錄 |
docker run -v 數(shù)據(jù)卷 | 指定創(chuàng)建容器的目錄為數(shù)據(jù)卷,可供其他容器掛載 |
docker run --volumes-from 數(shù)據(jù)卷容器 | 掛載數(shù)據(jù)卷容器(掛載點路徑不變 |
docker run --link 源容器名稱:別名 | 容器互聯(lián) |
注意:一般只建議在創(chuàng)建容器時進行掛載,不建議啟動容器后再掛載。
因為啟動容器后再掛載的話,需要修改配置文件,且不一定能掛載成功。