初识Dockerfile
Dockerfile是构建镜像用的,是一个命令脚本
方式一(commit)
方式二(Dockerfile)
操作步骤
-
新建一个命令脚本文件放在指定地方例如:/home/docker-test-volume
脚本起名就叫dockerfile01(可指定名字)
脚本内容
From centos //已centos为基础 VOLUME ["volume01","volume02"] //可挂载多个目录 CMD echo "----end----" //输入一个消息 CMD /bin/bash //默认走控制台
-
通过这个脚本可以生成镜像,镜像是一层一层的,每个命令就是一层
建造一个镜像
命令
docker build -f dockerfile0l -t gang/centos:01 .
-f:指定脚本名字
-t:为生成的镜像起名
注意 . 最后一个小点:生成在当前目录之下,当然也可以指定
这是一个匿名挂载
-
这里注意还有一个小操作,新建一个 容器通过自己建立的镜像gang/centos
docker run -it 镜像id /bin/bash
ls查看文件发现多了两个volume文件
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
-
通过docker inspect 容器id 查看生成路径
找到mounts这里的内容及生成路径与宿主机互联
也可以测试下效果
这种方法未来使用的非常的多
数据卷容器
多个mysql同步数据问题
通过创建容器时候用 --volumes-from 可以进行多个容器同步挂载
例如:
docker run -it --name docker01 gang/centos:01 docker run -it --name docker02 --volumes-from gang/centos:01
这里测试:
两个挂载的文件都在同步
删除docker01容器后 docker02 仍然同步宿主机器不影响,这里是持久化的核心思想