DockerFile常用命令

以下是常见的Dockerfile命令:

  1. FROM:FROM命令用于指定基础镜像。基础镜像是构建镜像的起点。例如,FROM ubuntu:latest表示使用最新版本的Ubuntu作为基础镜像。

  2. MAINTAINER:MAINTAINER命令用于指定镜像的维护者信息。一般格式为:MAINTAINER 维护者姓名 <电子邮件地址>。

  3. RUN:RUN命令用于在镜像中执行命令。可以是任何Shell命令或执行脚本。每一个RUN命令都会在一个新的镜像层中执行,并且会导致镜像大小的增加。例如:RUN apt-get update && apt-get install -y nginx。

  4. CMD:CMD命令用于指定容器默认运行的命令。该命令在启动容器时执行,并且只能在Dockerfile中出现一次。CMD可以被覆盖,即在运行容器时,可以通过命令行参数来覆盖默认的CMD命令。有两种语法格式:

    • CMD "executable", "param1", "param2":使用Exec形式执行命令,推荐使用这种形式。
    • CMD command param1 param2:使用Shell形式执行命令。
  5. ENTRYPOINT:ENTRYPOINT命令指定容器的入口点。它与CMD命令类似,但是ENTRYPOINT命令不会被覆盖,而是作为固定的命令存在。除非在运行容器时使用--entrypoint参数,ENTRYPOINT中的命令将一直被执行。ENTRYPOINT的语法格式与CMD相同。

  6. COPY/ADD:COPY和ADD命令用于将文件从本地系统复制到镜像中。COPY适用于常规文件,ADD具有更多功能。ADD除了可以复制本地文件,还可以传输URL的内容和自动解压缩tar文件。

    • COPY <源路径> <目标路径>:将本地源路径的文件复制到容器中的目标路径。
    • ADD <源路径> <目标路径>:将本地源路径的文件、目录、URL等复制到容器中的目标路径。
  7. WORKDIR:WORKDIR命令用于设置容器中的工作目录。后续命令将在该目录下执行。工作目录可以是相对路径或绝对路径。

  8. ENV:ENV命令用于设置环境变量。可以在容器运行时使用这些环境变量。

    • ENV =:设置一个环境变量。
    • ENV = =...:设置多个环境变量。
  9. EXPOSE:EXPOSE命令指定容器运行时将监听的端口。这只是一个元数据声明,实际运行时需要使用-p或者-P参数来进行端口映射。

  10. VOLUME:VOLUME命令用于向基于镜像创建的容器添加一个或多个挂载点。这允许容器和主机之间共享文件或目录。

  • VOLUME /path/to/volume:在容器中创建一个挂载点。
相关推荐
todoitbo3 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
是枚小菜鸡儿吖10 小时前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
螺蛳粉 螺蛳粉13 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
wefg113 小时前
【Docker】镜像相关指令
运维·docker·容器
java_logo15 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
死磕音视频15 小时前
Open WebUI 入门:用 Docker 装上本地对话界面并连接 Ollama
docker·ollama·本地大模型·open webui
分布式存储与RustFS15 小时前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs
n1121216 小时前
Docker 容器时区错 8 小时:3 个坑
运维·docker·容器·故障排查·服务器运维·容器时区
慈云数据16 小时前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器
螺蛳粉 螺蛳粉17 小时前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver