从dockerfile编辑文件

时间:2014-12-30 22:14:06

标签: docker dockerfile

我需要在docker镜像中为/etc/sysctl.conf添加几行。是否有一种幂等方式通过dockerfile执行此操作,而不是手动编辑并使用docker commit方法?

2 个答案:

答案 0 :(得分:69)

我会在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可能会有所帮助。

答案 1 :(得分:9)

sed工作很好,以替换东西,如果你需要追加,你可以用户双重定向

sed -i 's/origin text/new text/' /etc/sysctl.conf
bash -c 'echo hello world' >> /etc/sysctl.conf

-i是用于内联编辑的GNU sed的非标准选项(减少了处理临时文件的需要)。