Dockerfile中CMD和ENTRYPOINT命令详解

当我们创建Docker镜像时,需要在Dockerfile中定义一些命令来构建和运行容器。其中,CMD和ENTRYPOINT是两个非常重要的命令。

CMD 命令

CMD命令用于指定容器启动时所要运行的命令。它会被写在Dockerfile的最后一行, 并且只有最后一个CMD命令会被执行。在docker run时运行的命令将覆盖CMD。

语法格式

CMD ["executable","param1","param2"]
  • executable:要运行的命令或可执行文件。可以是可执行文件名或一个可以执行的shell命令。
  • param1,param2:命令所需的参数,可选。

示例:

FROM ubuntu
CMD ["echo", "Hello Docker!"]

构建Docker镜像,并运行容器:

$ docker build -t myimage .
$ docker run myimage

输出:

Hello Docker!

ENTRYPOINT 命令

ENTRYPOINT命令也用于指定容器启动时所要运行的命令。但不同于CMD命令,它指定的命令不会被docker run时的命令覆盖,而是作为容器启动时的默认命令。

语法格式

ENTRYPOINT ["executable","param1","param2"]
  • executable:要运行的命令或可执行文件。可以是可执行文件名或一个可以执行的shell命令。
  • param1,param2:命令所需的参数,可选。

示例:

FROM ubuntu
ENTRYPOINT ["echo", "Hello"]
CMD ["Docker!"]

构建Docker镜像,并运行容器:

$ docker build -t myimage .
$ docker run myimage

输出:

Hello Docker!

可以看到,在运行容器时并没有指定运行的命令,而是执行了ENTRYPOINT指定的默认命令。

如果我们在运行容器时指定了一个命令,它会覆盖CMD命令,而不会替换ENTRYPOINT命令。

例如,运行命令:

$ docker run myimage "Goodbye"

输出:

Hello Goodbye

以上就是关于CMD和ENTRYPOINT命令的详细解析,希望能帮助你更加深入地理解Dockerfile的使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Dockerfile中CMD和ENTRYPOINT命令详解 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • docker-compose介绍

    什么是docker-compose? Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。它是一个定义和运行多容器的 docker应用工具。使用compose,你能通过YMAL文件配置你自己的服务,然后通过一个命令,你能使用配置文件 创建和运行所有的服务。重点可以启动多个容器! docker-compose组成? Doc…

    Docker 2023年4月16日
    00
  • ubuntu-docker入门到放弃(一)docker的安装

    基于ubuntu14.04系统 安装参考官网:https://docs.docker.com 1、首先检查是否安装过docker,如果安装过,卸载: sudo apt-get remove docker docker-engine docker.io 2、更新apt源 sudo apt-get update sudo apt-get install linu…

    Docker 2023年4月15日
    00
  • Docker简单安装与应用入门教程

    下面我将为大家提供一份“Docker简单安装与应用入门教程”的完整攻略。 安装Docker Docker可以在多个平台上安装和运行,比如Windows、Mac和Linux等等。下面以安装Docker Desktop for Mac为例,简单介绍一下安装步骤: 首先,我们到Docker官网下载Docker Desktop。 下载完成后打开安装包,将Docker…

    Docker 2023年5月16日
    00
  • 从linux上的docker持久化mysql数据恢复到本地mysql数据库

    网上查询 先说说这几种文件是干什么的:*.frm是描述了表的结构,*.myd保存了表的数据记录,*.myi则是表的索引。其实一个.frm文件就是对应的数据库中的一个表,表示数据表的表结构。.MYD文件 这应该是INNODB引擎外的数据文件。.MYI文件:.myi是MyISAM表的索引的扩展名 .对数据库的操作有大量的select,就用MyISAM表对数据库的…

    Docker 2023年4月13日
    00
  • Docker部署nginx+php环境的全过程(简单可用!)

    以下是一份关于“Docker部署nginx+php环境的全过程”的攻略。该攻略主要分为三个部分:准备工作、Docker环境搭建、部署nginx和php环境。 准备工作 在开始操作前,需要确保已经安装好以下软件: Docker(至少1.13.0版本) Docker Compose(至少1.10.0版本) Docker环境搭建 1. 创建Docker环境 创建一…

    Docker 2023年5月16日
    00
  • Docker网络及容器通信原理详解

    Docker网络及容器通信原理详解 在 Docker 中,网络是容器运行的基石,想要实现 Docker 容器之间的通信,我们需要理解 Docker 的网络原理。下面我将详细讲解 Docker 网络及容器通信原理,并提供两条示例说明。 Docker网络 Docker 中有四种网络模式,分别为: bridge 模式 host 模式 none 模式 overlay…

    Docker 2023年5月16日
    00
  • Docker的基本命令使用笔记

    Docker是一个开源的轻量级容器引擎,可以将应用程序和其依赖项打包成一个可移植的镜像,并在不同平台上运行。下面是Docker的基本命令使用笔记,包括安装Docker,创建并运行一个Docker容器,上传和下载Docker镜像等。 安装Docker 在Linux系统中,可以通过以下命令安装Docker: $ sudo apt-get update $ sud…

    Docker 2023年5月16日
    00
  • docker security-opt

    dockerd –security-opt   –security-opt=”label=user:USER” Set the label user for the container –security-opt=”label=role:ROLE” Set the label role for the container –security-opt=…

    Docker 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部