zoukankan      html  css  js  c++  java
  • 【Docker】Dockerfile 之 ENTRYPOINT(四)

    参考教程:https://docs.docker.com/engine/reference/builder/

    环境

    1. virtual box 6.1
    2. centos 7.8
    3. docker 19.03

    ENTRYPOINT 和 CMD 的交互

    Both CMD and ENTRYPOINT instructions define what command gets executed when running a container. There are few rules that describe their co-operation.
    CMDENTRYPOINT 指令均定义了运行容器时执行的命令。有少量的规则描述他们的合作。

    1. Dockerfile should specify at least one of CMD or ENTRYPOINT commands.

    2. Dockerfile 应该至少指定 CMDENTRYPOINT 命令之一。

    3. ENTRYPOINT should be defined when using the container as an executable.

    4. 使用容器作为可执行文件时,应定义 ENTRYPOINT

    5. CMD should be used as a way of defining default arguments for an ENTRYPOINT command or for executing an ad-hoc command in a container.

    6. 应该使用 CMD 作为定义 ENTRYPOINT 命令或在容器中执行命令的默认参数的方式。

    7. CMD will be overridden when running the container with alternative arguments.

    8. 当使用其他参数运行容器时,CMD 将被覆盖。

    The table below shows what command is executed for different ENTRYPOINT / CMD combinations:
    下表显示了针对不同的 ENTRYPOINT/CMD 组合执行的命令:

    No ENTRYPOINT ENTRYPOINT exec_entry p1_entry ENTRYPOINT [“exec_entry”, “p1_entry”]
    No CMD error, not allowed /bin/sh -c exec_entry p1_entry exec_entry p1_entry
    CMD [“exec_cmd”, “p1_cmd”] exec_cmd p1_cmd /bin/sh -c exec_entry p1_entry exec_entry p1_entry exec_cmd p1_cmd
    CMD [“p1_cmd”, “p2_cmd”] p1_cmd p2_cmd /bin/sh -c exec_entry p1_entry exec_entry p1_entry p1_cmd p2_cmd
    CMD exec_cmd p1_cmd /bin/sh -c exec_cmd p1_cmd /bin/sh -c exec_entry p1_entry exec_entry p1_entry /bin/sh -c exec_cmd p1_cmd

    Note

    If CMD is defined from the base image, setting ENTRYPOINT will reset CMD to an empty value. In this scenario, CMD must be defined in the current image to have a value.

    注意

    如果从基础镜像定义了 CMD,则设置 ENTRYPOINT 会将 CMD 重置为空值。在这种情况下,必须在当前镜像中定义CMD 以具有值。

    总结

    介绍了 Dockerfile 中 ENTRYPOINT 指令和 CMD 指令的交互。

  • 相关阅读:
    Elasticsearch 入门教程
    Spring Boot集成JasperReports生成PDF文档
    Java程序员须知的七个日志管理工具
    vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例
    spring boot项目在外部tomcat环境下部署
    linux 如何正确的关闭mongodb
    Centos7下yum安装配置nginx与php
    Centos7 搭建lnmp环境 (centos7+nginx+MySQL5.7.9+PHP7)
    CentOS7安装MySQL
    搭建MySQL高可用负载均衡集群(转)
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14116463.html
Copyright © 2011-2022 走看看