我需要在Docker Image中添加几行。有一种方法可以通过
/etc/sysctl.conf
而不是手动编辑和使用
Dockerfile
方法来执行此操作?docker commit
中使用以下方法
Dockerfile
应该解决这个问题。如果您希望重新定位某些字符或类似角色,则可以使用例如使用SED来解决此问题。以下内容:
RUN echo "Some line to add to a file" >> /etc/sysctl.conf
,但是,如果您的问题在于简单地将设置“咬”
RUN sed -i "s|some-original-string|the-new-string |g" /etc/sysctl.conf
可以很好地替换东西,如果您需要附加,则可以用户双向重定向
sed -i 's/origin text/new text/g' /etc/sysctl.conf
bash -c 'echo hello world' >> /etc/sysctl.conf
是用于编辑的GNU SED的非标准选项(减轻了处理临时文件的需求)。
-i
是SED的替代命令,用于查找和替换
s
是指全局替换,即找到所有出现g
的出现,然后用sed替换为
origin text
为了补充已经解释如何附加单行的答案,您可以将多行附加到这样的文件中:
new text
如果要扩展变量,请使用双引号。
我使用这种方法:RUN /bin/echo -e '\
Hello World!\n\
This is an example on how to\n\
append multiple lines to a file from within a Dockerfile.'\
>> /etc/sysctl.conf
我可以在IDE中使用语法突出显示的方式编辑
COPY ./docker-build/www/_bashrc_append.sh /tmp
RUN cat /tmp/_bashrc_append.sh >> /root/.bashrc && rm /tmp/_bashrc_append.sh
。