因为使用了他人提供的docker镜像,想对其中某个网络操作修改一下,需要修改某域名指向的IP,这就要修改容器内的/etc/hosts
文件。又觉得每次重创建docker后手动去修改很麻烦,所以想到在docker-compose.yml中定义该操作。
查询资料后得到的解决方法如下:
代码语言:javascript复制version: '3'
services:
mirai:
image: reprover/mirai-http:latest
tty: true
command: sh -c 'echo "127.0.0.1 126.com" >> /etc/hosts && /bin/sh'
其中command: sh -c 'echo "127.0.0.1 126.com" >> /etc/hosts && /bin/sh'
就是解决这问题的。命令后面附加的 && /bin/sh
必不可少,否则容器执行完echo "127.0.0.1 126.com" >> /etc/hosts
后会自动退出。实际上如果没有command
这行,docker会自动执行/bin/sh
这个默认命令。