第137天学习打卡(Docker DockerFile)

Posted doudoutj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第137天学习打卡(Docker DockerFile)相关的知识,希望对你有一定的参考价值。

数据容器卷

多个mysql同步数据

image-20210525144403877

# 启动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

image-20210525145700198

image-20210525150336446

image-20210525150859870

#测试:可以删除docker01,查看docker02和docker03是否还可以访问这个文件
# 测试依旧可以访问

image-20210525153618987

image-20210525153958540

多个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的:

image-20210525160103780

image-20210525155926609

很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像!

DockerFile构建过程

基础知识:

1.每个保留关键字(指令)都必须是大写字母

2.执行从上到下顺序执行

3.# 表示注释

4.每个指令都会创建提交一个镜像层,并提交!

image-20210525213806832

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)

第138天学习打卡(Docker 实战测试 Tomcat)

第134天学习打卡(Docker 容器命令 常用其他命令 Docker安装Nginx )

第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)