網站首頁 編程語言 正文
我們本節為大家介紹的容器數據共享,是指在同一臺服務器宿主機的容器之間的數據共享。如果涉及到跨服務器容器的數據共享,實際上是涉及到服務器之間的數據同步或分布式文件系統,基本不屬于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
相關推薦
- 2021-12-30 C++內存管理之簡易內存池的實現_C 語言
- 2022-09-21 使用注解實現Redis緩存功能_Redis
- 2022-10-23 Redis?如何清空所有數據_Redis
- 2022-11-16 python中內置類型添加屬性問題詳解_python
- 2023-02-17 python引入其他py文件或模塊_python
- 2022-08-02 python3線程池ThreadPoolExecutor處理csv文件數據_python
- 2022-07-11 查看 jvm 參數
- 2021-12-18 C/C++?Qt?數據庫與TreeView組件綁定詳解_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支