第137天学习打卡(Docker DockerFile)
Posted doudoutj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第137天学习打卡(Docker DockerFile)相关的知识,希望对你有一定的参考价值。
数据容器卷
多个mysql同步数据
# 启动3个容器,通过自己写的镜像启动
# --volumes-from 只要通过它我们就可以实现容器间的数据共享
[root@kuangshen /]# docker run -it --name docker01 kuangshen/centos:1.0
[root@8a0acd2bca04 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
[root@8a0acd2bca04 /]# ls -l
[root@kuangshen /]# docker run -it --name docker02 --volumes-from docker01 kuangshen/centos:1.0
[root@fc875d7eaf43 /]# cd volume01
[root@fc875d7eaf43 volume01]# ls
docker01
[root@fc875d7eaf43 volume01]# clear
bash: clear: command not found
[root@fc875d7eaf43 volume01]# exit
exit
[root@kuangshen /]# clear
[root@kuangshen /]# docker run -it --name docker03 --volumes-from docker01 kuangshen/centos:1.0
[root@e4d22f7d9079 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
[root@e4d22f7d9079 /]# cd volume01
[root@e4d22f7d9079 volume01]# ls
docker01
[root@e4d22f7d9079 volume01]# touch docker03
[root@e4d22f7d9079 volume01]# ls
[root@e4d22f7d9079 volume01]# ls
docker01 docker03
[root@e4d22f7d9079 volume01]# exit
exit
#测试:可以删除docker01,查看docker02和docker03是否还可以访问这个文件
# 测试依旧可以访问
多个mysql实现数据共享
[root@kuangshen home]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:8.0.23
[root@kuangshen home]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql:8.0.23
# 这个时候可以实现两个容器数据同步!
结论:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器为止。
但是一旦持久化到了本地,这个时候,本地的数据时不会删除的!
DockerFile
dockerfile是用来构建docker镜像文件!命令参数脚本!
构建步骤:
1.编写一个dockerfile文件
2.docker build构建成为一个镜像
3.docker run运行镜像
4.docker push发布镜像(DockerHub 、阿里云镜像仓库!)
查看官方是怎么进行搭建镜像的比如centos的:
很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像!
DockerFile构建过程
基础知识:
1.每个保留关键字(指令)都必须是大写字母
2.执行从上到下顺序执行
3.# 表示注释
4.每个指令都会创建提交一个镜像层,并提交!
dockerfile是面向开发的,以后要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单。Docker镜像逐渐成为企业交付的标准,必须要掌握!
Docker镜像逐渐成为企业交付的标准,必须掌握!
步骤:开发,部署, 运维…缺一不可!
DockerFile:构建文件,定义了一切步骤,源代码!
DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品!
Docker容器:容器就是镜像运行起来提供服务器。
DockerFile的指令
FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的, 姓名 + 邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 步骤:添加内容
WORKDIR #镜像的工作目录
EXPOSE #保留端口配置
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效, 可被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令!
ONBUILD #当构建一个被集成DockerFile 这个时候就会运行ONBUILD 的指令。触发指令。
COPY #类似ADD,将我们文件拷贝到镜像中
ENV #构建的时候设置环境变量!
B站学习网址:【狂神说Java】Docker最新超详细版教程通俗易懂_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
以上是关于第137天学习打卡(Docker DockerFile)的主要内容,如果未能解决你的问题,请参考以下文章
第139天学习打卡(Docker 发布自己的镜像 Docker网络)
第139天学习打卡(Docker 发布自己的镜像 Docker网络)
第142天学习打卡(Docker yaml规则 开源项目 Docker Swarm)
第134天学习打卡(Docker 容器命令 常用其他命令 Docker安装Nginx )
第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)