首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改基础docker镜像的默认命令

更改基础docker镜像的默认命令
EN

Stack Overflow用户
提问于 2014-06-20 07:06:26
回答 3查看 13.2K关注 0票数 10

我从docker集线器下载了ubuntu基础镜像。现在我正在尝试在ubuntu镜像的基础上构建一个新的镜像。然而,我希望ubuntu镜像的默认命令是"/bin/bash -c“而不是"/bin/ sh”,这样当我在Dockerfile中使用RUN时,它会访问bash而不是sh。请注意,我说的是同一映像的默认命令,而不是我试图构建的映像。

EN

回答 3

Stack Overflow用户

发布于 2014-06-20 16:43:53

我不认为在ubuntu镜像中有默认的命令。当你运行时

代码语言:javascript
复制
$ docker run ubuntu echo hi
hi

它运行["/bin/echo", "hi"]。可以通过运行以下命令来验证这一点

代码语言:javascript
复制
$ docker run ubuntu set
2014/06/20 08:38:54 exec: "set": executable file not found in $PATH

set是shell中的内置命令,但docker尝试将其作为外部命令运行。

如果您希望将默认shell从dash更改为bash,您可以使用固定的符号链接创建一个映像。这是一个dockerfile:

代码语言:javascript
复制
FROM ubuntu
RUN ln -sf /bin/bash /bin/sh

编辑

我刚意识到你在说什么。我不知道您是否可以更改RUN命令的默认值,但您可以显式使用/bin/bash,如下所示:

代码语言:javascript
复制
RUN /bin/bash -c ...
票数 4
EN

Stack Overflow用户

发布于 2016-09-12 05:16:43

您可以使用:

RUN ["/bin/bash", "-c", "<command>"]

票数 3
EN

Stack Overflow用户

发布于 2021-07-05 17:58:43

也许这能有所帮助:

SHELL ["/bin/bash", "-c"]

参考:https://github.com/moby/moby/issues/7281#issuecomment-389440503

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

https://stackoverflow.com/questions/24317603

复制
相关文章

相似问题

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