94

我需要/etc/sysctl.conf在 Docker 映像中添加几行。

Dockerfile有没有一种幂等的方法可以通过 a而不是手动编辑和使用该方法来做到这一点docker commit

4

2 回答 2

151

我会在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

但是,如果您的问题只是让设置“咬”这个问题可能会有所帮助。

于 2014-12-30T23:27:00.633 回答
14

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 的替代命令,用于查找和替换

表示全局替换,即使用 sedg查找所有出现origin text并替换为new text

于 2014-12-30T22:46:59.267 回答