【发布时间】:2015-02-27 02:02:34
【问题描述】:
我需要在 Docker 映像中向 /etc/sysctl.conf 添加几行。
是否有一种通过Dockerfile 而不是手动编辑并使用docker commit 方法的幂等方式来做到这一点?
【问题讨论】:
-
有人已经请求过这个:github.com/moby/moby/issues/12193
标签: docker dockerfile
我需要在 Docker 映像中向 /etc/sysctl.conf 添加几行。
是否有一种通过Dockerfile 而不是手动编辑并使用docker commit 方法的幂等方式来做到这一点?
【问题讨论】:
标签: docker dockerfile
我会在Dockerfile中使用以下方法
RUN echo "Some line to add to a file" >> /etc/sysctl.conf
这应该可以解决问题。如果您希望 替换 一些字符或类似字符,您可以使用 sed 来解决这个问题,例如使用以下:
RUN sed -i "s|some-original-string|the-new-string |g" /etc/sysctl.conf
但是,如果您的问题在于简单地设置“咬”this question 可能会有所帮助。
【讨论】:
command: echo "line" >> /etc/file.conf ?
sed 可以很好地替换东西,如果你需要追加,你可以使用双重重定向
sed -i 's/origin text/new text/g' /etc/sysctl.conf
bash -c 'echo hello world' >> /etc/sysctl.conf
-i 是 GNU sed 的非标准选项,用于内联编辑(减轻处理临时文件的需要)。
s 是 sed 的替代命令,用于查找和替换
g 表示全局替换,即查找所有出现的 origin text 并使用 sed 替换为 new text
【讨论】: