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容器与宿主机相互访问更方便的方法

    为了让讲解更清晰明了,我将分别从以下几个方面进行详细阐述: Docker容器与宿主机相互访问的方法 使用示例1:宿主机访问容器中web应用 使用示例2:容器访问宿主机中的MySQL数据库 1. Docker容器与宿主机相互访问的方法 要实现Docker容器与宿主机的相互访问,可以采用两种方法: 使用Docker的端口映射功能将容器内部的端口映射到宿主机上,从…

    Docker 2023年5月15日
    00
  • docker的swarm实现容器群集

    实验要求:可以上网的三台centos 7 实验步骤: 准备工作: 主机一(node1): 1安装docker环境:2.设置ntp服务器的同步时间vim /etc/ntp.conf添加:server 127.127.1.0fudge 127.127.1.0 stratum 8systemctl restart ntpd其他两台服务器同步ntp服务器的时间sys…

    Docker 2023年4月13日
    00
  • docker启动mysql 并实现外网访问且重启docker容器数据不丢失

    1.安装image docker pull mysql 也可以指定版本拉去镜像:docker pull mysql:5.7 2.docker查看本docker已有镜像: docker images 3.docker依据mysql镜像跑起来一个mysql容器,mysql密码是123:解释一下,–name是给容器起的名字, 3306:3306是把宿主机的3306…

    Docker 2023年4月13日
    00
  • windows 10 家庭版安装Docker和portainer汉化版

    目录 前景提要 存在问题 一、Docker的windows版本安装 1、官网下载: https://www.docker.com/(没有本文问题的直接下载就好.) 2、本文是找到其他版本的Docker,装一个不是最新的版本,就可以了。 3、系统修改 开启本机的虚拟器 (1) 开启 Hyper-V (2) 开启虚拟平台和Linux子系统 修改默认的安装路径. …

    2023年4月10日
    00
  • Docker使用的个人学习总结

    Docker 使用的个人学习总结 简介 Docker 是一个开源的应用容器引擎,让开发者可以在容器中封装自己的应用和服务,并且可以快速地在不同的环境中部署和交付。 安装 在官网下载并安装 Docker 客户端; 检测安装是否成功:docker version 镜像 Docker 镜像是一个只读的文件,包含了我们需要运行应用程序所需的所有内容,如代码、依赖、环…

    Docker 2023年5月16日
    00
  • 初次使用Docker的体验笔记总结

    初次使用Docker的体验笔记总结 什么是Docker Docker是一种轻量级的容器虚拟化技术,可以快速构建、打包以及分享便携式容器应用程序。Docker可以在不同的操作系统上共享,具有简单易用、环境隔离等优点。 安装Docker Mac:可以通过Homebrew安装,命令行输入brew install docker Windows:可以从官网下载Dock…

    Docker 2023年5月16日
    00
  • Linux上怎么使用docker启动redis并远程访问

    这篇文章主要介绍“Linux上怎么使用docker启动redis并远程访问”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux上怎么使用docker启动redis并远程访问”文章能帮助大家解决问题。 一、centos7 上安装 docker 1、安装必要的一些系统工具 yum install -y yum-uti…

    2023年4月8日
    00
  • docker部署安装zabbix

     安装docker   安装docker需要配置网络yum源,centos7自带的版本太低了   第一步:下载阿里云的docker安装包 在yum仓库的目录之下 [root@localhost yum.repos.d]# wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo …

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