目前docker集群共3臺摊欠,92為manager捌显,93、94 為從work node陡厘。要實現(xiàn)不同容器中的文件共享抽米。
方案一:采用nfs共享+外掛卷方式,缺點是存在單點故障
1糙置、在各服務(wù)器配置docker外掛卷云茸,統(tǒng)一命名:train
docker volume create train? #創(chuàng)建外掛卷
docker volume inspect train? ?#查看具體路徑
都在/var/lib/docker/volumes/train/_data路徑下
2、三臺服務(wù)配置nfs服務(wù)谤饭,92為主服務(wù)标捺,93、94為客戶端揉抵,并將train地址設(shè)置為共享地址亡容。
rpm -q rpcbind nfs-utils #查詢是否安裝
yum install -y nfs-utils rpcbind #安裝nfs和rpc的軟件包
chmod 777 /var/lib/docker/volumes/train/_data? #開通權(quán)限
92服務(wù)器配置:
Vi /etc/exports
/var/lib/docker/volumes/train/_data? 10.18.19.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
systemctl start rpcbind.service #開啟rpcbind
systemctl start nfs? ? ? ? ? ? ? ? #開啟nfs
systemctl enable rpcbind.service? ? ? ? #將rpcbind設(shè)為自啟動
systemctl enable nfs #將nfs設(shè)為自啟動
93、94客戶端配置:
rpm -q rpcbind nfs-utils #查看是否安裝
yum install-y rpcbind nfs-utils? ? ? ? ? ? #未安裝可以使用yum進行安裝
systemctl start rpcbind #開啟 rpcbind 服務(wù)
systemctl enable rpcbind #設(shè)置開機自啟
showmount -e 10.18.19.92?#查看掛載目錄,這里ip是nfs服務(wù)器ip
mount 10.18.19.92:/var/lib/docker/volumes/train/_data?? /opt/test1 # 手動掛載冤今,即做共享目錄映射
vim /etc/fstab? ?#配置自動映射
10.18.19.92:/var/lib/docker/volumes/train/_data???/opt/test1 nfs defaults,_netdev 0 0
3闺兢、docker中配置bind掛載卷與docker中路徑映射:
無服務(wù)的容器配置: docker run -d -v train:/home/data ${image_name}
有服務(wù)的容器配置: docker service create --name? predict --mount type=bind,src=/var/lib/docker/volumes/train/_data,dst=/home/data --with-registry-auth --replicas 1 --placement-pref 'spread=node.labels.Inference' --publish published=9045,target=80? ${image_name}
參考:https://blog.csdn.net/qq_45547688/article/details/124559328
https://blog.csdn.net/rnmmp2/article/details/118496400