91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker容器數據卷操作方法是什么

發布時間:2022-04-14 09:07:34 來源:億速云 閱讀:132 作者:iii 欄目:開發技術

本篇內容介紹了“Docker容器數據卷操作方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

容器數據卷介紹

什么是數據卷

將運用與運行的環境打包形成容器運行,運行可以伴隨著容器,但是我們對數據的要求是持久化的。

容器之間希望有可能共享數據。

Docker 容器產生的數據,如果不通過 docker commit 生成新的鏡像,使得數據做為鏡像的一部分保存下載,那么當容器刪除后,數據自然也就沒有了。為了能保存數據在 docker 中我們使用卷。

數據卷能做什么?

容器的持久化

容器間繼承和共享數據

卷就是目錄或文件,存在于一個或多個容器中,由 docker 掛載到容器,但不屬于聯合文件系統,因此能夠繞過 Union File System 提供一些用于持續存儲或共享數據的特性。

卷的設計目的就是數據的持久化,完全獨立于容器的生存周期因此 Docker 不會再容器刪除時刪除其掛載的數據卷。

特點

  • 數據卷可在容器之間共享或重用數據

  • 卷中的更改可以直接生效

  • 數據卷中的更改不會包含在鏡像的更新中

  • 數據卷的生命周期一直持續到沒有容器使用它為止

Docker 容器數據卷操作

直接命令添加數據卷

命令格式

docker run -it -v 宿主機絕對路徑:容器內絕對路徑 鏡像名

案例演示

#1、容器與宿主機主機間文件共享
	[root@docker ~]# docker run -itd -v /volume:/containervolume centos:latest
c0eb80a4425eac21b933ce1a81132eb08eeaaf30ac5adb077d44c11dd7260268
#2、主機和容器的 / 下均自動創建共享的目錄
	[root@docker ~]# ll -d /volume
drwxr-xr-x. 2 root root 6 11月  1 23:25 /volume
	[root@docker ~]# docker exec -it $(docker ps -q) ls -ld /containervolume
drwxr-xr-x. 2 root root 6 Nov  1 15:25 /containervolume
#3、驗證,在容器內的 containervolume 目錄下創建 test 文件,發現主機 volume 目錄共享了 test 文件
	[root@docker ~]# docker exec -it $(docker ps -q) touch /containervolume/test
	[root@docker ~]# ll /volume
	-rw-r--r--. 1 root root 0 11月  1 23:29 test
#4、退出容器后,主機對 volume 文件進行修改,再次啟動容器,發現容器內的 dataVolumeContainer 目錄下也同步了 nidaye 文件

 dockerfile 添加數據卷

dockerfile 說明

可在 Dockerfile 中使用 VOLUME 指令來給鏡像添加一個或多個數據卷

VOLUME["/dataVolumeContainer","/dataVolumeContainer2","/data/VolumeContainer3"]

出于可移植和分享的考慮,用-v 主機目錄:容器目錄 這種方法不能夠直接在 Dockerfile 中實現。由于宿主機目錄是依賴于特定宿主機的,并不能夠保證在所有的宿主機上都存在這樣的特定目錄。

案例演示

#1、在 / 目錄下創建 mydocker 文件夾并進入
	[root@docker ~]# mkdir /mydocker
#2、dockerfile 構建
	[root@docker ~]# vim /mydocker/dockerfile
	FROM centos:latest
	#創建的鏡像來自于父鏡像 centos
	VOLUME ["/volume"] 
	#在 / 下創建數據卷
	CMD echo "create---volume----successl"
	#打印數據卷創建成功
	CMD /bin/bash
#3、build 生成新的鏡像 volume/centos
	[root@docker ~]# docker build -f /mydocker/dockerfile -t volume/centos .
	Sending build context to Docker daemon  519.2MB
	Step 1/4 : FROM centos:latest
	 ---> 0f3e07c0138f
	Step 2/4 : VOLUME ["/volume"]
	 ---> Running in 0059989ef83c
	Removing intermediate container 0059989ef83c
	 ---> 9a7f6ae84e23
	Step 3/4 : CMD echo "create---volume----successl"
	 ---> Running in 9dd2d3fbd75c
	Removing intermediate container 9dd2d3fbd75c
	 ---> 6f8a83b9feca
	Step 4/4 : CMD /bin/bash
	 ---> Running in 18edd4a6af38
	Removing intermediate container 18edd4a6af38
	 ---> 30b4d769d4e8
	Successfully built 30b4d769d4e8
	Successfully tagged volume/centos:latest
	#鏡像創建成功
#4、使用新鏡像啟動容器
	[root@docker ~]# docker run -itd volume/centos
	53d070c79a13dd4ecfe3208a3907cd00e4dc3b1a45c2b890d642cb96b7e05217
#5、驗證,容器內成功創建目錄 volume
	[root@docker ~]# docker exec -it $(docker ps -q) ls -ld /volume
	drwxr-xr-x. 2 root root 6 Nov  1 16:03 /volume
#6、驗證,在宿主機上創建文件 test ,容器 /volume 目錄成功共享數據
	[root@docker ~]# touch /var/lib/docker/volumes/53d070c79a13dd4ecfe3208a3907cd00e4dc3b1a45c2b890d642cb96b7e05217/_data/test
	#宿主機數據卷默認掛載目錄
	[root@docker ~]# docker exec -it $(docker ps -q) ls -l /volume
	-rw-r--r--. 1 root root 0 Nov  1 16:12 test

 Docker 數據卷容器

數據卷容器簡介

命名的容器掛載數據卷,其它容器通過掛載這個(父容器)實現數據共享,掛載數據卷的容器,稱之為數據卷容器。

容器之間配置信息的傳遞,數據卷的生命周期一直持續到沒有容器使用它為止。

案例演示

啟動一個 centos_1 容器并掛載數據卷

	[root@docker ~]# docker run -itd --name="centos_1" -v /volume:/volumecontainer_1 centos 
	9f73357be614f7c5098b2ef3a83534002992ee2f281b8b984ed7af5c03a7e29b
#宿主機 /volume 下創建文件 test
	[root@docker ~]# touch /volume/test
#驗證,容器 centos_1,/volume/container_1/下共享文件 test
	[root@docker ~]# docker exec -it $(docker ps -q) ls -l /volumecontainer_1
	total 0
	-rw-r--r--. 1 root root 0 Nov  2 14:33 test

啟動一個 centos_2 容器并繼承容器 centos_1 的文件

	[root@docker ~]# docker run -itd --name="centos_2" --volumes-from centos_1 centos
	baefc86b170c376745761aaea1abc0843521b272213337109510170ff1ccb304
#驗證,容器 centos_2 繼承了容器 centos_1 的文件
	[root@docker ~]# docker exec -it $(docker ps -n 1 -q) ls -l /volumecontainer_1
	total 0
	-rw-r--r--. 1 root root 0 Nov  2 14:33 test
#驗證,在容器 centos_2 中添加文件,宿主機和容器 centos_1 都能共享
	[root@docker ~]# docker exec -it $(docker ps -n 1 -q) touch /volumecontainer_1/test_centos_2
#宿主機成功共享文件 test_container_2
	[root@docker ~]# ls -l /volume/
	總用量 0
	-rw-r--r--. 1 root root 0 11月  2 22:33 test
	-rw-r--r--. 1 root root 0 11月  2 22:42 test_centos_2
#容器 centos_1成功共享文件 test_container_2
	[root@docker ~]# docker exec -it 9f73357be614 ls -l /volumecontainer_1
	total 0
	-rw-r--r--. 1 root root 0 Nov  2 14:33 test
	-rw-r--r--. 1 root root 0 Nov  2 14:42 test_centos_2

“Docker容器數據卷操作方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

闽清县| 会理县| 驻马店市| 左权县| 黔江区| 大埔区| 冕宁县| 临西县| 东港市| 乌拉特前旗| 鞍山市| 个旧市| 东平县| 天镇县| 革吉县| 龙门县| 阿鲁科尔沁旗| 佛山市| 星座| 宜君县| 大冶市| 涞源县| 雷波县| 平潭县| 普宁市| 米泉市| 佳木斯市| 观塘区| 莱阳市| 固安县| 江口县| 宜阳县| 化德县| 菏泽市| 雷山县| 江源县| 高邮市| 富源县| 多伦县| 饶阳县| 阿克陶县|