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

2023-10-21 10:54:58 浏览数 (1)

因为使用了他人提供的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这个默认命令。

0 人点赞