
0x05 初识Docker File
Docker File就是用来构建Docker镜像的构建文件
编写DockerFile
1、这里的每一个命令都是镜像中的一层
[root@localhost ~]# cat dockerfile
FROM centos
VOLUME ["volume01", "volume02"] # 匿名挂载,只写了容器内路径
CMD echo "------end-------"
CMD /bin/bash
2、使用docker build通过docker file构建镜像
[root@localhost ~]# docker build -f dockerfile -t nowseccentos:2.1 .
Sending build context to Docker daemon 23.04kB
Step 1/4 : FROM centos
---> 5d0da3dc9764
Step 2/4 : VOLUME ["volume01", "volume02"]
---> Running in 2a90557549cd
Removing intermediate container 2a90557549cd
---> 09c93db8ad2a
Step 3/4 : CMD echo "------end-------"
---> Running in bb912b10c767
Removing intermediate container bb912b10c767
---> 2f724de367a1
Step 4/4 : CMD /bin/bash
---> Running in 421d8d01b711
Removing intermediate container 421d8d01b711
---> 22ca20256dfd
Successfully built 22ca20256dfd
Successfully tagged nowseccentos:2.1
3、启动制作的镜像
[root@localhost ~]# docker run -itd nowseccentos:2.1
3ae467f4146a6cc0e068c0035cc53fb484aa5a6473d502dc18fd38c6abf77536
4、查看容器的镜像挂载
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ae467f4146a nowseccentos:2.1 "/bin/sh -c /bin/bash" 5 seconds ago Up 3 seconds elastic_cerf
[root@localhost ~]# docker inspect elastic_cerf
"Mounts": [
{
"Type": "volume",
"Name": "2951b537c4759c47eeeb4503c6d479c69231e146d83434e4fd09d2684ed49512",
"Source": "/var/lib/docker/volumes/2951b537c4759c47eeeb4503c6d479c69231e146d83434e4fd09d2684ed49512/_data",
"Destination": "volume02",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
},
{
"Type": "volume",
"Name": "5dafcdbbdf2acf7177e603a822ae14656cab9ccedc4184d0868620e8b7896d31",
"Source": "/var/lib/docker/volumes/5dafcdbbdf2acf7177e603a822ae14656cab9ccedc4184d0868620e8b7896d31/_data",
"Destination": "volume01",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
5、查看Docker数据卷信息
[root@localhost ~]# docker volume ls
DRIVER VOLUME NAME
local 5dafcdbbdf2acf7177e603a822ae14656cab9ccedc4184d0868620e8b7896d31
local 802c798952c0d2d4cef6891c9cf7faa2a7f26db57e540696862c0933b2d5d55e
local 2951b537c4759c47eeeb4503c6d479c69231e146d83434e4fd09d2684ed49512
6、进入容器查看容器内数据卷
[root@localhost ~]# docker exec -it elastic_cerf /bin/bash
[root@3ae467f4146a /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
数据卷容器
容器间数据同步
启动第一个容器
使用之前创建的镜像来启动docker01
docker exec -it docker01 /bin/bash
> 启动第二个容器
使用docker01作为父容器来启动docker02
docker run -itd --name docker02 --volumes-from docker01 nowseccentos:2.1
启动后查看docker01和docker02中都有volume01和volume02
在docker01的volume01中创建文件,然后进入docker02中的volume02中查看,看到文件会同步
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 JacobWang
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果