Docker进阶学习
容器数据卷
docker的理念是将应用和环境打包成一个镜像。
如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化
需求:容器中的数据可以存在本地
容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地!
这就是卷技术!目录的挂在,将我们容器内的目录,挂载到Linux上面!
容器的持久化和同步操作!容器间也是可以共享的
使用数据卷
直接使用命令来挂载 -v
docker run -it -v 主机目录:容器内目录
[root@VM-8-14-centos home]
[root@66917585e46c /]
[root@66917585e46c home]
[root@66917585e46c home]
[root@VM-8-14-centos home]
lighthouse MUYU test
[root@VM-8-14-centos home]
[root@VM-8-14-centos test]
FANXU
无论是从主机的test目录添加文件,或是从容器中的home下添加文件,两边都会自动进行同步。
好处:我们以后修改只需要在本地修改即可,容器内会自动进行同步
安装Mysql
[root@VM-8-14-centos test]
5.7: Pulling from library/mysql
e1acddbe380c: Already exists
bed879327370: Pull complete
03285f80bafd: Pull complete
......
Digest: sha256:7cf2e7d7ff876f93c8601406a5aa17484e6623875e64e7acc71432ad8e0a3d7e
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@VM-8-14-centos test]
2da46ed95ba3e66612e25d4f77129e72d209bd1cdd26edd47d82816e07820a89
具名和匿名挂载
-v 容器内路径! -P 随机映射端口
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
[root@VM-8-14-centos data]
DRIVER VOLUME NAME
local 8613276e64c7d34e01b2366e80d6d2491dc2ae00f0c5ee6062dfc71a0bc897cb
docker run -d -P --name nginx01 -v /etc/nginx nginx
[root@VM-8-14-centos data]
DRIVER VOLUME NAME
local juming-nginx
docker volume inpsect juming-nginx
所有docker容器内的卷,在没有指定目录的情况下都是存在/var/lib/docker/volumes/xxx/_data 下
推荐使用具名挂载
扩展
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
|