在docker-compose.yml中定义命令修改hosts文件

因为使用了他人提供的docker镜像,想对其中某个网络操作修改一下,需要修改某域名指向的IP,这就要修改容器内的/etc/hosts文件。又觉得每次重创建docker后手动去修改很麻烦,所以想到在docker-compose.yml中定义该操作。

查询资料后得到的解决方法如下:

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这个默认命令。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容