首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是码头-入口点. ps在码头ps

什么是码头-入口点. ps在码头ps
EN

Stack Overflow用户
提问于 2022-04-12 00:27:55
回答 1查看 3K关注 0票数 1

执行docker ps时,返回以下内容

代码语言:javascript
复制
CONTAINER ID   IMAGE                          COMMAND                  CREATED        STATUS        PORTS                                                                NAMES
285a40d8fe9c   busybox                        "top"                    10 hours ago   Up 10 hours                                                                        affectionate_nightingale
93eccc49d12e   localstack/localstack:0.14.0   "docker-entrypoint.sh"   12 hours ago   Up 12 hours   4510-4559/tcp, 5678/tcp, 0.0.0.0:4566->4566/tcp, :::4566->4566/tcp   docker_localstack_1
577c50d348d1   docker_db                      "docker-entrypoint.s…"   12 hours ago   Up 12 hours   33060/tcp, 0.0.0.0:3314->3306/tcp, :::3314->3306/tcp                 mysql_host

我想知道docker-entrypoint.sh in CMD是什么。我理解CMD定义了PID1,换句话说,它定义了这个容器的用途以及每个容器应该做什么。

Dockerfile

代码语言:javascript
复制
FROM --platform=linux/amd64 mysql:8.0
COPY initdb.d/* /docker-entrypoint-initdb.d/
CMD ["mysqld"]

如果有人知道什么是docker-entrypoint.sh,请告诉我好吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-04-12 00:55:51

这是图像的入口点。

基本映像的Dockerfile声明了一个运行该shell脚本的ENTRYPOINT。派生图像继承了该ENTRYPOINT,但替换了它的CMD。因为映像有一个ENTRYPOINT和一个CMD 它们被组合成一个命令及其参数。,所以您可以在那里看到这个组合命令。

ENTRYPOINT的一个典型用途是作为一个包装器,它执行一些第一次设置,然后执行CMDmysql:8图像遵循此模式。它的docker-entrypoint.sh相当复杂:它负责创建初始数据库存储、启动临时数据库、运行/docker-entrypoint-initdb.d目录中的任何内容,然后调用exec "$@"来运行CMD

对于您显示的Dockerfile,您不需要重复CMD;它的基像已经声明了一个相同的CMD,只要继承它就可以了。这同样适用于其他映像,如tomcatphp:fpmnginx,其中基本映像是一个完全可运行的东西,而不仅仅是语言运行时。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71835673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档