从dockerfile

问题描述 投票:0回答:3

我需要在Docker Image中添加几行。
有一种方法可以通过

/etc/sysctl.conf

而不是手动编辑和使用

Dockerfile
方法来执行此操作?
    

docker dockerfile
3个回答
195
投票
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 可以很好地替换东西,如果您需要附加,则可以用户双向重定向


19
投票

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
如果要扩展变量,请使用双引号。

我使用这种方法:

5
投票
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

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.