日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

docker容器間進行數據共享的三種實現方式_docker

作者:字母哥哥 ? 更新時間: 2022-07-28 編程語言

我們本節為大家介紹的容器數據共享,是指在同一臺服務器宿主機的容器之間的數據共享。如果涉及到跨服務器容器的數據共享,實際上是涉及到服務器之間的數據同步或分布式文件系統,基本不屬于docker技術范疇。

一、Bind Mounts方式共享數據

使用下面的命令行啟動一個容器,名稱是nginx80,宿主機映射端口是80

docker run -d --name nginx80 \
  -p 80:80 \
  -v /root/nginx/html:/usr/share/nginx/html/ \
  nginx:latest

然后修改上面的腳本,使用--name nginx81-p 81:80啟動一個容器,使用--name nginx82-p 82:80再啟動一個容器。

這樣我們就啟動了三個nginx容器,映射的宿主機磁盤目錄都是/root/nginx/html。后續我們只要把需要部署的html文件放入宿主機的/root/nginx/html目錄即可影響三個nginx web服務。

二、Volumes方式數據共享

Volumes方式數據共享與Bind Mounts方式共享數據幾乎是一樣的,只是-v的宿主機文件數據卷指定為Volume:nginx-html。

docker run -d --name nginx80 \
  -p 80:80 \
  -v nginx-html:/usr/share/nginx/html/  \
  nginx:latest

然后修改上面的腳本,使用--name nginx81-p 81:80啟動一個容器,使用--name nginx82-p 82:80再啟動一個容器。可以參考下面的這張圖,理解Volumes方式數據共享。

三、Volume container(數據卷容器)方式

3.1.創建數據卷容器

除了上面提到的2種方式,我們還可以創建一個數據卷容器。數據卷容器的核心在于數據卷,只不過以容器的方式存在。特別適用于當一組容器有多個相同的數據卷映射關系時(即多個-v) ,我們把多個-v數據卷映射關系組成一個數據卷組(即數據卷容器)

docker create \
 -v nginx-html:/usr/share/nginx/html/  \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 --name vc_nginx_html  busybox
  • 只是create容器,并未運行容器,因為我們并不需要容器運行,我們需要的只是數據卷(組)
  • 命名方式最好和普通的容器區分開,如“vc_”前綴
  • 之所以使用busybox鏡像,是因為它是最小,最不占空間的鏡像。

容器創建完成之后,可以使用docker ps -a查看容器,也可以通過docker inspect vc_nginx_html查看該容器的多個數據卷。

3.2.使用數據卷容器

docker run -d --name nginx81 \
  -p 81:80 \
  --volumes-from vc_nginx_html   nginx:latest

使用上面的腳本創建一個容器,讓它的數據卷映射(掛載)關系與vc_nginx_html相同,即:

--volumes-from vc_nginx_htm
等同于
-v nginx-html:/usr/share/nginx/html/  \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \

結合下圖理解一下數據卷容器,數據卷容器一般只提供數據卷的定義,不真實運行。

原文鏈接:https://blog.csdn.net/hanxiaotongtong/article/details/125039578

欄目分類
最近更新