Dockerfile 主要命令

发布时间 2023-06-06 17:59:30作者: 铁盒半岛序
  1. FROM:指定基础镜像

语法:

 FROM <image>

用于指定基础镜像,后续的操作都基于该镜像进行。比如:

 FROM ubuntu:latest

表示使用 Ubuntu 的 latest 版本作为基础镜像。

  1. MAINTAINER:指定维护者信息

语法:

 MAINTAINER <name>

用于指定维护者信息。比如:

 MAINTAINER John Smith <john.smith@example.com>

表示该镜像由 John Smith 维护。

  1. RUN:执行命令

语法:

 RUN <command>

用于在容器中执行命令。比如:

 RUN apt-get update && apt-get install -y curl

表示在容器中运行 apt-get update 和 apt-get install 命令,用于安装 curl 工具。

  1. EXPOSE:声明容器运行时需要监听的端口号

语法:

 EXPOSE <port>

用于声明容器需要监听的端口号。比如:

 EXPOSE 80/tcp

表示容器将会监听 80 端口,协议是 TCP。

  1. ENV:设置环境变量

语法:

 ENV <key> <value>

用于设置环境变量。比如:

 ENV NODE_ENV production

表示设置环境变量 NODE_ENV 的值为 production。

  1. ADD/COPY:将本地文件复制到容器中

语法:

 ADD <src> <dest>
COPY <src> <dest>

用于将本地文件复制到容器中。其中 ADD 命令会自动解压 tar 包,而 COPY 命令则直接复制文件。比如:

 ADD app.tar.gz /app

表示将本地的 app.tar.gz 文件解压并复制到容器内路径为 /app 的位置。

  1. CMD/ENTRYPOINT:指定容器启动时要执行的命令

语法:

 CMD <command>
ENTRYPOINT <command>

用于指定容器启动时要执行的命令。其中 CMD 命令可以被覆盖,而 ENTRYPOINT 则不行。比如:

 CMD ["npm", "start"]

表示默认情况下启动容器时会执行 npm start 命令。

除了这些基本命令外,还有一些其他常用的命令,例如:

  1. WORKDIR:指定工作目录

语法:

 WORKDIR <path>

用于设置容器的工作目录。比如:

 WORKDIR /app

表示将容器的工作目录设置为 /app。

  1. USER:指定运行容器的用户

语法:

 USER <user>

用于指定容器运行时所使用的用户。比如:

 USER node

表示在容器中以 node 用户身份运行。

  1. VOLUME:声明匿名卷或挂载主机目录

语法:

 VOLUME <path>

用于声明匿名卷或将主机上指定目录挂载到容器中。比如:

 VOLUME /data

表示在容器中创建一个匿名卷,并将其挂载到 /data 目录下。

  1. ARG:定义构建时的参数

语法:

 ARG <name>[=<default value>]

用于定义构建时可以传递的参数。默认值是可选的。比如:

 ARG NODE_ENV=production

表示定义一个名为 NODE_ENV 的参数,默认值为 production。

通过在 Dockerfile 中组合使用这些命令,可以实现对应用程序的打包和部署等操作。