DockerFile

DockerFile

03DockerFile

1.DockerFile的概念

用来构建docker​镜像的构建文件,由一系列参数和命令构成的脚本

大体总览:

​​

‍

1.构建过程

要遵循的规则:

​​

2.执行流程

‍Docker​执行一个Dockerfile​脚本的流程大致如下

  1. Docker从基础镜像运行一个容器
  2. 执行一条指令病对容器作出修改
  3. 执行类似docker commit的操作提交一个新的镜像层
  4. docker在基于刚提交的镜像运行一个新的容器
  5. 执行dockerfile中的下一条指令直到所有执行完成

解释下:

1.dockerfile_软件的原材料

2.docker镜像是软件的交付品

3.docker容器则可以认为是软件的运行态

​​

‍

‍3.常用的构建指令

指令 说明
FROM 基础镜像,当前新镜像是基于哪个镜像的,有继承的意味
MAINTAINER 镜像维护者的姓名和邮箱地址
RUN 容器构建时需要运行的命令
EXPOSE 当前容器对外暴露的端口
WORKDIR 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
ENV 用来在构建镜像过程中设置环境变量
ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY 类似ADD,拷贝文件和目录到镜像中。 将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置 COPY src dest COPY "src","dest"
VOLUME 容器数据卷,用于数据保存和持久化工作
CMD 指定一个容器启动时要运行的命令 Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
ENTRYPOINT 指定一个容器启动时要运行的命令 ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数
ONBUILD 当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

DockerFile命令

BUILD BOTH RUN
FROM WORKDIR CMD
MAINTAINER USER ENV
COPY EXPOSE
ADD VOLUME
RUN ENTRYPOINT
ONBUILD
.dockerignore

‍

3.构建镜像

1.创建DockerFile​文件

复制代码
vim  dockers


FROM centos:centos7

MAINTAINER aristo<boyunv@163.com>

ENV MYPATH /usr/local

WORKDIR  $MYPATH

RUN yum -y install vim

EXPOSE  80

CMD echo $MYPATH
CMD echo "success =------> boyunv!~"
CMD /bin/bash

2.构建镜像

复制代码
 docker build -f dockers -t centos:1.0  .
 ##-f: 我们创建的dockerfile文件
 ##-t: 创建的文件名
 ## 切记后面的一个点不能忘记添加

构建的结果

​

3.运行我们的创建的1.0​镜像

复制代码
docker run -it centos:1.0

3.MYSQL的启动

复制代码
docker run -p 12345:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
f349e5bcec0706a353880e5c5b17e73f2d3dda704e57425292f09e0c5397cfb8

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

相关推荐
csdn_aspnet14 小时前
Docker Prune:完整指南与上手示例
运维·docker·容器·prune
死磕音视频17 小时前
Dify 入门:用 Docker 自部署并搭建知识库问答助手
docker·知识库·dify·大模型应用
方便面不加香菜18 小时前
Docker安装详解--基于Ubuntu环境
运维·docker·容器
幽默小吴19 小时前
docker篇(一)
docker
幽默小吴19 小时前
docker篇(二)
docker
biaov21 小时前
Jenkins + Docker 搭建前端 CI:前端一键打包部署
前端·docker·jenkins
说实话起个名字真难啊2 天前
实战docker部署dify及注意点
运维·docker·容器
Starry-sky(jing)2 天前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
对象存储与RustFS2 天前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
后端·docker·云原生
可涵不会debug2 天前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机