Docker筆記(二)容器資料捲進階
阿新 • • 發佈:2021-10-27
容器資料卷
什麼是容器資料卷
資料存在容器,容器刪除,資料就會丟失,如何做到資料持久化?
目的:就是資料的持久化,完全獨立與容器的生命週期,因此Docker不會在容器刪除時刪除其掛載的資料卷。
特點:
1:資料卷可以在容器之間共享或重用資料。
2:資料卷中的更改可以直接生效。
3:資料卷中的更改不會包含在映象的更新中。
4:資料卷的生命週期一直持續到沒有容器使用它為止。
具名掛載與匿名掛載
我們通過具名掛載可以方便的找到我們的一個卷,大多數情況在使用的|具名掛載
#如何確定是具名掛載還是匿名掛載,還是指定路徑掛載! -v容器內路徑 #匿名掛載 -v卷名:容器內路徑#具名掛載 -v/宿主機路徑:容器內路徑#指定路徑掛載!
拓展︰
#通過-v容器內路徑:ro rw改變讀寫許可權
ro readonly #只讀
rw readwrite#可讀可寫
#一旦這個了設定了容器許可權,容器對裁們掛載出來的內容就有限定了!
docker run -d -p --name nginx02 -v juming-nginx : /etc/nginx:ro nginxdocker run -d - --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
# ro只要看到ro就說明這個路徑只能通過宿主機來操作,容器內部是無法操作!
用法
方式一 :使用命令掛載
docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 # 示例 docker run -it -v /home/ceshi:/home centos /bin/bash # 通過docker inspect [容器id] 檢視容器詳細配置 "Mounts": [ { "Type": "bind", "Source": "/home/ceshi", # 主機內地址 "Destination": "/home", # 容器內地址 "Mode": "", "RW": true, "Propagation": "rprivate" } ]
方式二 :使用Dockerfile掛載
Dockerfile 用來構建docker映象的構建檔案
# 指令大寫
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
資料卷容器
實現容器建資料共享
# 啟動docker01,並建立test.md檔案 # docker run -it --name docker01 test/centos:1.0 [root@node1 docker-test-volume]# docker run -it --name docker01 test/centos:1.0 [root@a45217dfa119 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02 [root@a45217dfa119 /]# cd volume01 [root@a45217dfa119 volume01]# touch test.md # 啟動docker02,通過--volumes-from繼承docker01配置 # docker run -it --name docker02 --volumes-from docker01 test/centos:1.0 # 檢視volume01下也存在test.md [root@node1 ~]# docker run -it --name docker02 --volumes-from docker01 test/centos:1.0 [root@1611bfa5128f /]# cd volume01 [root@1611bfa5128f volume01]# ls test.md
實戰
一、安裝mysql
# 1.0 獲取mysql映象
docker pull mysql:5.7
# 2.0 啟動mysql
# -d 後臺執行 -p 埠對映 -v資料卷掛載 -e 環境配置 --name容器名
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/confg.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
本篇內容是參考網路教程學習過程中的筆記
開發工作著,生活快樂著,留下總結,相互交流,共同進步