Docker Dockerfile如何编写?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

1.指令说明

FROM,构建镜像基于哪个镜像

MAINTAINER,镜像维护者姓名或邮箱地址

RUN,构建镜像时运行的指令

CMD,运行容器时执行的shell环境

VOLUME,指定容器挂载点到宿主机自动生成的目录或其他容器

USER,为RUN、CMD、和 ENTRYPOINT 执行命令指定运行用户

WORKDIR,为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录,就是切换目录

HEALTHCHECH,健康检查

ARG,构建时指定的一些参数

EXPOSE,声明容器的服务端口(仅仅是声明)

ENV,设置容器环境变量

ADD,拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压

COPY,拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能

ENTRYPOINT,运行容器时执行的shell命令

2.关键点

RUN 执指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大,大部分命令可以简化如下:

RUN yum -y install wget

&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"

&& tar -xvf redis.tar.gz

Copy

上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

上下文路径

由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

Compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

相关说明:https://www.runoob.com/docker/docker-compose.html

相关推荐
小狗很可爱3 分钟前
利用Docker建立个人博客
运维·docker·容器
玉梅小洋5 分钟前
修改 Docker 容器主机名
运维·docker·容器
这也能行9 分钟前
KeepAlived
运维·服务器·网络
人间打气筒(Ada)10 分钟前
gitlab私有仓库搭建
运维·gitlab·项目实战·devops·代码部署实战·版本控制仓库
何中应12 分钟前
ubuntu如何设置远程工具连接
linux·运维·ubuntu
黑蛋同志14 分钟前
Rocky Linux 10 上搭建 社区版 GitLab CE
linux·运维·gitlab
fygfh.20 分钟前
Linux外设之 串口(UART)的使用
linux·运维·单片机
赛博云推-Twitter热门霸屏工具23 分钟前
推特自动化营销新趋势:赛博云推如何实现热门霸屏与精准获客
运维·科技·自动化·媒体·twitter
劳埃德福杰24 分钟前
Windows电脑安装双系统,如何删除其中一个系统
运维·windows·电脑·笔记本电脑
一个向上的运维者24 分钟前
从 K8s Device Plugin 到 Volcano 多元算力管理:GPU 显存共享实战与深度解析
云原生·容器·kubernetes