日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

容器数据卷

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 容器数据卷 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

容器數據卷技術

它是一種將容器中的數據持久化到linux宿主機的技術。

# 1. 使用命令掛載 -v docker run -it -v 主機目錄:容器目錄# 將容器centos 的home目錄掛載到linux的用戶docker_study/centos_home目錄下面 [root@izbp1imy docker_study]# docker run -it -v /usr/echo_lovely/docker_study/centos_home:/home 0d120b6ccaa8 /bin/bash [root@09670c4a0836 /]## 2. 查看掛載信息~ docker inspect 被掛載的容器id

# 3. 在容器的home目錄創建文件, 文件同步 [root@09670c4a0836 home]# touch demo.java [root@09670c4a0836 home]# ls demo.java [root@09670c4a0836 home]## 4. 查看宿主機上的文件[root@izbp1imy centos_home]# ls demo.java# 5. 在宿主機上修改demo.java , 雙向綁定 [root@izbp1imy centos_home]# vim demo.java [root@izbp1imy centos_home]# ls demo.java [root@izbp1imy centos_home]# cat demo.java /**@author echo_lovey**@date 2020/11/24 11:05**/public class demo {public static void main(Stirng[] args) {System.out.println("hello world ~");}} # 上面在宿主機上修改并查看了文件# 6. 進入容器,在容器中查看對應的文件 [root@izbp1imy centos_home]# ls demo.java [root@izbp1imy centos_home]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 09670c4a0836 0d120b6ccaa8 "/bin/bash" 22 minutes ago Up 8 minutes eloquent_thompson [root@izbp1imy centos_home]# docker attach 09670c4a0836 [root@09670c4a0836 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@09670c4a0836 /]# cd /home [root@09670c4a0836 home]# ls demo.java [root@09670c4a0836 home]# cat demo.java /**@author echo_lovey**@date 2020/11/24 11:05**/public class demo {public static void main(Stirng[] args) {System.out.println("hello world ~");}} [root@09670c4a0836 home]## 上面可以看到被掛載的容器目錄,和掛載到linux上指定目錄。 # 其中一個改變,另外一個會同步!

掛載mysql

容器容易被刪,需要將數據掛載到本地

1. 獲取mysql鏡像 docker pull mysql:5.72. 進行數據掛載~ 配置密碼~ (docker hub) 可以掛載數據和配置文件,同時掛載多個。# 官方的使用, 設置密碼docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag# 設置端口, 掛載了容器中的mysql 到data, 配置文件到conf目錄。 并設置了密碼~ [root@izbp1imy docker_study]# docker run -d -p 3310:3306 -v /usr/echo_lovely/docker_study/mysql/data:/var/lib/mysql -v /usr/echo_lovely/docker_study/mysql/conf:/etc/mysql/conf.d --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 421381366f7f7b90e2b332e82321e5e3b69263b3651b3ad0de31f6eb95b916f9 [root@izbp1imy docker_study]# # 外部使用sqlyog,測試連接到容器中的數據庫成功,創建數據庫。 查看linux中的數據庫[root@izbp1imy docker_study]# cd mysql [root@izbp1imy mysql]# ls conf data [root@izbp1imy mysql]# cd data [root@izbp1imy data]# ls auto.cnf ca-key.pem client-cert.pem ib_buffer_pool ib_logfile0 ibtmp1 performance_schema public_key.pem server-key.pem bitqian_db ca.pem client-key.pem ibdata1 ib_logfile1 mysql private_key.pem server-cert.pem sys

具名和匿名掛載

# 匿名:-v 后面只指定被掛載的目錄 匿名: docker run -d -P -v /etc/nginx/conf.d nginx# 具名: 指定名稱, 帶有目錄和不帶目錄 # -v nginx_volume:/etc/jjj # -v /home/dir:/etc/jjj # 好像不被放到掛載信息里面# 1. 不指定目錄的具名掛載centos docker run -d --name centos01 -P -v centos01:/home centos# 查看掛載的卷 docker volume ls# 1.1. 查看centos1 被掛載的卷的信息 [root@izbp1imy home]# docker volume inspect centos01 [{"CreatedAt": "2020-11-24T14:57:32+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/centos01/_data","Name": "centos01","Options": null,"Scope": "local"} ]# volume info ~ DRIVER VOLUME NAME local centos01# 被掛載的卷在/var/lib/docker/volumes/這個目錄# 2. 指定目錄的掛載, 掛載信息未被記錄~ docker run -d -p 81:80 -v /usr/echo_lovely/docker_study/nginx:/etc/nginx/ --name nginx01 nginx# 3. 匿名掛載 有掛載信息~ docker run -d -P --name nginx02 -v /etc/nginx nginx# volume info ~ DRIVER VOLUME NAME local 1d4cbe2f068c0f318b9057bbec374546a69c683f2637540ba05d4c2d12c69a42# 給被掛載的文件夾同時賦予 讀寫權限 # 只讀 read only docker run -d -P --name nginx02 -v /etc/nginx:ro nginx # 讀寫都可 read write docker run -d -P --name nginx02 -v /etc/nginx:rw nginx

容器的持久化和同步操作。容器之間也是可以數據共享的。

總結

以上是生活随笔為你收集整理的容器数据卷的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。