DockerFile
DokerFile 用来构建docker镜像的文件!命令脚本
这里再创建时指定挂载卷,如果构建镜像时没有挂载卷,需要手动挂载 -v
FROM centos
VOLUME ["volume01","volume02"] #匿名挂载
CMD echo "----end---"
CMD /bin/bash
建造镜像
切换到dockefile所在目录
# dockefile所在目录
cd /[dockerfile_path]/
# 创建镜像,注意最后一个点
docker build -f [dockerfile_name] -t [image_name]:TAG .
# 实际
docker build -f dockerfile01 -t custom/centos:01 .
数据卷容器
通过 --volumes-from实现容器间的数据共享,容器之间的配置信息的传递,数据卷容器的生命周期一直持续到没有哦容器使用为止。
但是一旦容器一旦持久化到本地,这个时候,本地的数据是不会删除的。
# 查看镜像情况
docker images
# 启动容器,自制容器,容器自带挂载卷
docker run -it --name docker01 custom/centos:01
# 在volumes01中创建文件,然后 Ctrl+P+Q 退出
cd /volumes01
touch docker01.txt
# 通过--volumes-from 挂载上容器
docker run -it --name docker02 --volumes-from docker01 custom/centos:01
# 查看docker02中的文件
cd /volumes01
ls -l
# 将docker03挂载在docker01上,
docker run -it --name docker03 --volumes-from docker01 custom/centos:01
# docker03在volumes01中创建文件
cd /volumes01
touch docker03.txt
# 去docker03中的文件,docker03创建文件在挂载卷中
cd /volumes01
ls -l
# 删除docker01容器
docker ps
docker rm -f docker01
# 查看docker03和docker02中挂载卷,依旧存在
数据双向拷贝
MySQL容器数据共享
# 获取镜像
docker pull mysql:5.7
# 运行容器,需要做数据挂载,安装启动mysql,需要配置密码
# 官方测试:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
# 实际启动,设置启动密码为123456
# -d 后台运行
# -p 端口映射
# -v 卷挂载(匿名挂载)
# -e 环境配置
# --name 容器名
docker run -d -p 3301:3306 -v /etc/mysql/conf.d -v /var/lib/mysql --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
实现mysql容器数据共享
# 实现mysql01和mysql02数据共享
docker run -d -p 3301:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456
--volumes-from mysql01 mysql:5.7