更改基本泊坞窗图像的默认命令

时间:2014-06-19 23:06:26

标签: docker

我从docker hub下载了ubuntu基本映像。现在我正在尝试基于ubuntu映像构建新映像。但是,我希望ubuntu映像的默认命令是" / bin / bash -c"而不是" / bin / sh"所以当我在Dockerfile中使用RUN时,它会访问bash而不是sh。注意我说的是同一图像的默认命令,而不是我想要构建的图像。

3 个答案:

答案 0 :(得分:3)

我认为ubuntu图片中没有默认命令。当你运行

$ docker run ubuntu echo hi
hi

它运行["/bin/echo", "hi"]。您可以通过运行

来验证
$ docker run ubuntu set
2014/06/20 08:38:54 exec: "set": executable file not found in $PATH

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

如果要将默认shell从短划线更改为bash,可以使用固定符号链接创建图像。这是一个dockerfile:

FROM ubuntu
RUN ln -sf /bin/bash /bin/sh

[编辑]

我刚刚意识到你在谈论什么。我不知道你是否可以更改RUN命令的默认值,但你可以像这样明确地使用/ bin / bash:

RUN /bin/bash -c ...

答案 1 :(得分:0)

您可以使用:

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

答案 2 :(得分:-1)

也许这会有所帮助:

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

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