資料卷之Docker File
阿新 • • 發佈:2022-04-04
- DockerFile 是用來構建Docker映象的構建檔案,是由一些列命令和引數構成的指令碼。後面再詳細瞭解 DockerFile !
1、我們在宿主機 /home 目錄下新建一個 docker-test-volume資料夾
[root@zheng home]# mkdir docker-test-volume # 說明:在編寫DockerFile檔案中使用 VOLUME (就是-v)指令來給映象新增一個或多個數據卷 VOLUME["/dataVolumeContainer1","/dataVolumeContainer2","/dataVolumeContainer3"] # 出於可移植和分享的考慮,我們之前使用的 -v 主機目錄:容器目錄 這種方式不能夠直接在DockerFile中實現。 # 由於宿主機目錄是依賴於特定宿主機的,並不能夠保證在所有宿主機上都存在這樣的特定目錄.
2、編寫DockerFile檔案,名字隨意
[root@zheng docker-test-volume]# pwd /home/docker-test-volume [root@zheng docker-test-volume]# vim dockerfile1 [root@zheng docker-test-volume]# cat dockerfile1 #指令命令都要大寫 FROM centos VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] #匿名掛載 CMD echo "-------end-------" # 生成完成顯示end CMD /bin/bash
3、build後生成映象,獲得一個新映象 zheng/centos
docker build -f /home/docker-test-volume/dockerfile1 -t zheng/centos .
# 注意最後有個. 當前目錄
# build 建造映象 ; -f 指路徑 ; -t tag生成映象加名字,映象名前不需要/
4、啟動容器
[root@zheng docker-test-volume]# docker run -it 0e97e1891a3d /bin/bash #啟動容器 [root@f5824970eefc /]# ls -l total 33 lrwxrwxrwx 1 root root 7 May 11 2019 bin -> usr/bin drwxr-xr-x 2 root root 4096 May 11 11:55 dataVolumeContainer1 # 這個目錄就是我們生成映象時自動掛載的,也就是資料卷目錄 drwxr-xr-x 2 root root 4096 May 11 11:55 dataVolumeContainer2 # 資料卷目錄 drwxr-xr-x 5 root root 360 May 11 11:55 dev ..... # 這個卷和外部一定有一個同步目錄
對應的主機目錄地址在哪裡?
5、我們在資料卷中新建一個檔案
[root@f5824970eefc dataVolumeContainer1]# pwd
/dataVolumeContainer1
[root@f5824970eefc dataVolumeContainer1]# touch container.txt #容器內部建立的檔案
[root@f5824970eefc dataVolumeContainer1]# ls -l
total 0
-rw-r--r-- 1 root root 0 May 11 11:58 container.txt
# 在容器內建立了,在容器外就有
6、檢視下這個容器的資訊(元資料)
[root@zheng ~]# docker inspect 0e97e1891a3d(容器ID)
# 找到mounts 檢視輸出的Volumes
"Volumes": {
"/dataVolumeContainer1": {}
"/dataVolumeContainer2": {}
},
# 即可看到路徑
7、這個卷在主機對應的預設位置
cd /var/lib/docker/volumes/容器匿名/_data #進入目錄
ls #即可看到有自己建立的檔案