8.Dockerfile书写

Dockerfile

dockerfile就是用来构建docker镜像的构建文件!命令脚本!

通过这个脚本生成镜像,镜像是一层一层的

# 编写dockerfile

FROM centos # 这是 Dockerfile 中的基础镜像声明。表示你将使用 centos 作为基础镜像,构建新的 Docker 镜像。这个基础镜像会是 CentOS 的一个官方版本。

VOLUME ["volume01","volume02"] # 这个命令用来声明容器中的挂载点,也就是卷(volumes)。volume01 和 volume02 是容器内的路径。这些卷在容器运行时将被 Docker 挂载,用来存储数据,并且这些数据可以持久化(不会因为容器的删除而丢失)。注意,这里没有指定宿主机路径,所以卷是匿名挂载,也就是说 Docker 会自动管理这些卷。

CMD echo "---end---" # CMD 用于指定容器启动时要执行的默认命令。在这里,CMD echo "---end---" 会在启动容器时输出 "---end---"。如果你运行这个镜像,默认情况下这个命令会执行,显示 ---end---,然后容器会停止。

CMD /bin/bash # 这是另一个 CMD 指令。它表示容器启动时,会默认进入 /bin/bash,也就是启动一个 Bash shell。因为 Dockerfile 中只能有一个 CMD 指令生效,所以这个 /bin/bash 会覆盖上一个 CMD echo "---end---"。最终容器启动时,默认会进入 Bash 命令行,而不是执行 echo "---end---"

构建docker镜像

docker build -f dockerfile1 -t guoyunqiao/centos .

在这里插入图片描述

docker images

在这里插入图片描述

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

查看一下卷挂载的路径

在这里插入图片描述

数据卷容器

多个mysql同步数据

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

多个mysql实现数据共享

docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-form mysql01 mysql:5.7

这个时候,可以实现两个容器数据同步!

结论:容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。但是一旦你持久化到了本地,这个时候,本地的数据是不会删除的!

DockerFile

dockerfile文件是用来构建docker镜像的文件,命令参数的脚本

构建步骤:

1. 编写一个dockerfile文件

2. docker build 构架成为一个镜像

3. docker run 运行镜像

4. docker push 发布镜像(dockerhub,阿里云镜像仓库!)

在这里插入图片描述

DockerFile的构建过程

基础知识:

1、每个保留关键字(指令)都是必须是大写字母
2、执行从上到下顺序执行
3、# 表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交!

在这里插入图片描述

dockerfile面向开发的,我们以后发布项目,做镜像,就需要编写dockerfile文件

Docker镜像逐渐成为了企业交付的标准

步骤:开发,部署,上线,运维…

dockerfile:构建文件,定义一切步骤,源代码

dockerimages:通过构建生成的镜像,最终发布和运行的产品

docker容器:容器就是镜像运行起来的提供服务

Dockerfile的指令

FROM        # 基础镜像,一切从这里开始构建
MAINTAINER  # 镜像是谁写的,姓名+邮箱
RUN         # 镜像构建的时候需要运行的命令
ADD         # 步骤:tomcat镜像,这个tomcat压缩包!就是添加内容
WORKDIR     # 镜像的工作目录
VOLUME      # 挂载的目录
EXPOSE      # 保留端口配置
CMD         # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT  # 指定这个容器启动的时候要运行的命令,可以追加命令

ONBUILD     # 当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令,触发指令。
COPY        # 类似ADD,将我们文件拷贝到镜像中
ENV         # 构建的时候设置环境变量

在这里插入图片描述

实战:创建自己的centos

Docker Hub中99%镜像都是从这个基础镜像过来的 FROM scratch,然后配置需要的软件和配置来进行构建

  1. 编写配置文件

在这里插入图片描述

  1. 通过文件构建镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值