目录
数据卷
mysql 后台启动并持久化数据
具名挂在/匿名挂在
初识Dockerfile
数据卷容器
总结:
数据卷
docker run -it -v 主机目录:容器目录 镜像 例 docker run -it -v /home/ceshi:/home centos /bin/bash #启动后可以根据 docker inspect查看关联信息 "Mounts": [ { "Type": "bind", "Source": "/home/ceshi", #主机地址 "Destination": "/home", #容器关联地址1 "Mode": "", "RW": true, "Propagation": "rprivate" } ],
数据会双向同步
好处 直接在本地修改不需要进入容器
mysql 后台启动并持久化数据#安装镜像 docker pull mysql #启动 -d #后台运行 -v #卷挂载 -e #环境配置 -p #端口映射 --name #容器名字 启动命令 docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
成功之后用sqlyog 链接测试成功
具名挂在/匿名挂在#匿名挂在 -v #后面不指定地址 例: docker run -d -P -v etc/nginx nginx docker volume ls #查看所有的 volume(卷) 情况 DRIVER VOLUME NAME local 8d38ceafe1bbae3eea5ea202ac7975dfdf60bb2ef7b375a1f4891b062b31f208 local b82e836e2cd18d329d442d26c0d252e9a9035484b44609a0229d362efebc7253 没有具体的路径 #具名挂在 例: docker run -d -P -v test-nginx:/etc/nginx nginx docker volume ls #查看所有的 volume 情况 DRIVER VOLUME NAME local 8d38ceafe1bbae3eea5ea202ac7975dfdf60bb2ef7b375a1f4891b062b31f208 local b82e836e2cd18d329d442d26c0d252e9a9035484b44609a0229d362efebc7253 local test-nginx 有具体的路径
所有的卷 都在 /var/lib/docker/volumes/xxx/_data
所以大多数情况我们都是用具名挂在
如何确定具名挂载/匿名挂载/路径挂载
-v 容器路径 #匿名挂载 -v 卷名:容器路径 #剧名挂载 -v /宿主机路径:容器路径 #路径挂载
拓展:
#通过ro/rw来改变权限 docker run -d -P -v test-nginx:/etc/nginx:ro nginx #只读 read only docker run -d -P -v test-nginx:/etc/nginx:rw nginx #可读可写 read write初识Dockerfile
Dockerfile 就是用来构建 docker镜像的构建文件,命令脚本,体验一下!
通过这个脚本可以生成镜像,镜像是一层一层的脚本一个个的执行每个命令都是一行
#创建一个Dockerfile脚本 FROM centos VOLUME ["volume01","volume02"] CMD echo "----end----" CMD /bin/bash #执行脚本 创建一个镜像 docker build -f dockerfile1 -t test/centos .
查看结果 docker images
执行镜像 docker run -it 0edd7173368c
docker ps
查看容器 信息 docker inspect 4177960f655b
看到所对应的数据卷
数据卷容器多个mysql 如何同步数据
#继承容器 4177960f655b 到 docker02 当中 docker run -it --name docker02 --volumes-from 4177960f655b test/centos
在 第一个容器中创建文件 在docker02 当中依然可以找到
如果想实现 mysql 复制
docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volume-from mysql01 mysql:5.7 #同步两个数据容器总结:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器为止
但是一旦你持久化到本地,之歌时候,本地的数据不会删除的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)