welcome

docker容器数据卷

docker容器中产生的数据存储在本地:卷技术,目录挂载,将容器内的目录挂载linux上,解决数据持久化问题。

 

方式一:直接使用命令来挂载(-v)

docker run -it -v 主机目录:容器内目录 -p 主机端口:容器内端口 镜像 /bin/bash

 

root@Hon:/home# docker run -it -v /tmp/test:/home centos /bin/bash
[root@4e7bb8da4848 /]#
[root@4e7bb8da4848 /]#
[root@4e7bb8da4848 /]# cd /home
[root@4e7bb8da4848 home]# touch 1.txt
[root@4e7bb8da4848 home]# exit
exit
root@Hon:/home#
root@Hon:/home# cd /tmp
root@Hon/tmp# ls
snap-private-tmp
systemd-private-be2ea4503fa343519a15a297c8ce27e9-polkit.service-rnnsns
systemd-private-be2ea4503fa343519a15a297c8ce27e9-systemd-logind.service-4dPzuR
systemd-private-be2ea4503fa343519a15a297c8ce27e9-systemd-resolved.service-d0oNID
test
root@Hon:/tmp# cd test/
root@Hon:/tmp/test# ls
1.txt
root@Hon:/tmp/test#

 

 docker inspect 4e7bb8da4848  #查看挂载信息:

 "Mounts": [
            {
                "Type": "bind",
                "Source": "/tmp/test",
                "Destination": "/home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

  关容器,修改宿主机的1.txt文件,测试同步

root@Hon:/tmp/test# docker start 4e7bb8da4848
4e7bb8da4848
root@Hon:/tmp/test# docker attach 4e7bb8da4848
[root@4e7bb8da4848 /]#
[root@4e7bb8da4848 /]#
[root@4e7bb8da4848 /]# cd /home
[root@4e7bb8da4848 home]# ls
1.txt
[root@4e7bb8da4848 home]# cat 1.txt
hello
by
qweqewqe

  -v数据卷好处:修改只需要在本地修改,容器内会自动同步

 

eg.

$ docker run -d --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:tag

  

$ docker run -d --name some-mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:tag

 -e 环境配置

posted on 2025-03-10 11:17  vanspumakappa  阅读(15)  评论(0)    收藏  举报

导航