docker:不覆盖基本映像入口点

飞井

我想要一个可以扩展mongo图像并在上面带有ssh的docker图像。我写了这行:

FROM mongo

RUN apt-get update && \
    apt-get install -y openssh-server

EXPOSE 22

RUN useradd -s /bin/bash -p $(openssl passwd -1 test) -d /home/nf2/ -m -G sudo test

CMD ["sh", "-c", "service ssh start", "bash"]

这仅开始ssh而不是开始mongo如果删除,mongod则从基本映像执行最后一行

可以在同一映像中运行两个命令吗?

Adiii

如@David所述,CMD通常运行一个进程,因此当您覆盖service ssh start它时,它将不会运行Mongo,因为它将覆盖CMD运行Mongo进程的基本映像

尝试更改CMD以启动这两个过程。

CMD ["sh", "-c", "service ssh start && mongod"]

但是您应该知道service ssh是否由于某种原因而停止,您的容器仍将继续运行,并且一旦Mongo进程停止,容器将死亡。您可以使用以下命令进行验证

docker run  -dit --name test --rm abc && docker exec -it test bash -c "service ssh status"
ce30fa23eeb07f1e268008cce7566585ba1f98c0a3054cecb145443f3275a0d4
 * sshd is running

更新:

由于mongod仅会启动Mongo进程,并且不会发生任何初始化数据库,因此请尝试更改用于模仿数据库的命令。

FROM mongo
RUN apt-get update && \
    apt-get install -y openssh-server
ENV MONGO_INITDB_ROOT_USERNAME=root
ENV MONGO_INITDB_ROOT_PASSWORD=example
RUN useradd -s /bin/bash -p $(openssl passwd -1 test) -d /home/nf2/ -m -G 
CMD ["sh", "-c", "service ssh start && docker-entrypoint.sh mongod"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

覆盖的docker入口点的参数

来自分类Dev

带有入口点的Dockerfile仅来自基本映像

来自分类Dev

GitHub Actions忽略/覆盖Docker容器的入口点

来自分类Dev

默认的Docker入口点

来自分类Dev

Docker-无法从带有入口点的导入映像中运行容器

来自分类Dev

Docker:基本映像

来自分类Dev

docker nginx部署入口点

来自分类Dev

Docker无法运行入口点

来自分类Dev

Docker在入口点后退出

来自分类Dev

Docker,入口点异常行为

来自分类Dev

找不到Docker映像入口点脚本

来自分类Dev

找不到Docker映像入口点脚本

来自分类Dev

从Dockerfile创建Docker基本映像?

来自分类Dev

docker基本映像:如何升级

来自分类Dev

Docker基本映像未运行

来自分类Dev

DllExport不创建入口点

来自分类Dev

入口点:“ entrypoint.sh”-docker撰写

来自分类Dev

Docker入口点不会提示我输入

来自分类Dev

Docker 入口点找不到命令

来自分类Dev

如何调用redmine docker镜像的入口点?

来自分类Dev

使用自定义docker映像初始化pytorch估计器以在AWS Sagemaker上进行培训时,定义什么作为入口点?

来自分类Dev

Docker中基本映像的性能影响

来自分类Dev

Docker基本映像,它们由什么组成?

来自分类Dev

创建一个Docker基本映像

来自分类Dev

Docker中基本映像的性能影响

来自分类Dev

为什么setuptools不创建我的入口点?

来自分类Dev

从映像创建Docker容器而不启动它

来自分类Dev

Docker安装发生在入口点执行之前或之后

来自分类Dev

为什么Docker中的入口点以运行jar的sh开头?