Docker学习笔记 (12)

通过这个脚本可以生成镜像,镜像是一层一层的,脚本是一个个的命令,每个命令都是一层!

# 创建一个dockerfile文件,名字可以随便 建议Dockerfile # 文件中的内容: 指令(大写) + 参数 $ vim dockerfile1 FROM centos # 当前这个镜像是以centos为基础的 VOLUME ["volume01","volume02"] # 挂载卷的卷目录列表(多个目录) CMD echo "-----end-----" # 输出一下用于测试 CMD /bin/bash # 默认走bash控制台 # 这里的每个命令,就是镜像的一层! # 构建出这个镜像 -f dockerfile1 # f代表file,指这个当前文件的地址(这里是当前目录下的dockerfile1) -t caoshipeng/centos # t就代表target,指目标目录(注意caoshipeng镜像名前不能加斜杠‘/’) . # 表示生成在当前目录下 $ docker build -f dockerfile1 -t zhuantai/centos . Sending build context to Docker daemon 2.56kB Step 1/4 : FROM centos latest: Pulling from library/centos 8a29a15cefae: Already exists Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700 Status: Downloaded newer image for centos:latest ---> 470671670cac Step 2/4 : VOLUME ["volume01","volume02"] # 卷名列表 ---> Running in c18eefc2c233 Removing intermediate container c18eefc2c233 ---> 623ae1d40fb8 Step 3/4 : CMD echo "-----end-----" # 输出 脚本命令 ---> Running in 70e403669f3c Removing intermediate container 70e403669f3c ---> 0eba1989c4e6 Step 4/4 : CMD /bin/bash ---> Running in 4342feb3a05b Removing intermediate container 4342feb3a05b ---> f4a6b0d4d948 Successfully built f4a6b0d4d948 Successfully tagged caoshipeng/centos:latest # 查看自己构建的镜像 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE zhuantai/centos latest f4a6b0d4d948 About a minute ago 237MB 8.1启动自己写的容器镜像 $ docker run -it f4a6b0d4d948 /bin/bash # 运行自己写的镜像 $ ls -l # 查看目录

image-20210208004302652

这个卷和外部一定有一个同步的目录

image-20210208004322442

查看一下卷挂载

# docker inspect 容器id $ docker inspect ca3b45913df5

image-20210208004450507

测试一下刚才的文件是否同步出去了!

image-20210208005056739

这种方式使用的十分多,因为我们通常会构建自己的镜像!

假设构建镜像时候没有挂载卷,要手动镜像挂载 -v 卷名:容器内路径!

9. 数据卷容器

多个MySQL同步数据

命名的容器挂载数据卷!

image-20210208120801841

# 测试 启动3个容器,通过刚才自己写的镜像启动 # 创建docker01:因为我本机是最新版,故这里用latest,狂神老师用的是1.0如下图 $ docker run -it --name docker01 caoshipeng/centos:latest # 查看容器docekr01内容 $ ls bin home lost+found opt run sys var dev lib media proc sbin tmp volume01 etc lib64 mnt root srv usr volume02 # 不关闭该容器退出 CTRL + Q + P # 创建docker02: 并且让docker02 继承 docker01 $ docker run -it --name docker02 --volumes-from docker01 caoshipeng/centos:latest # 查看容器docker02内容 $ ls bin home lost+found opt run sys var dev lib media proc sbin tmp volume01 etc lib64 mnt root srv usr volume02

image-20210208121610689

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxyyx.html