Docker compose无法启动已在使用的服务地址?

Docker compose无法启动已在使用的服务地址?,docker,docker-compose,gogs,Docker,Docker Compose,Gogs,由于某些原因,docker compose不喜欢以下配置中gogs容器的地址203.0.113.1。请注意,在下面的示例中,我在203.0.113.3上运行GOG,但如果我将其更改为203.0.113.1,则消息: 错误:对于f1d322793d47_docker_gogs_1,无法启动服务gogs:地址已在使用中 我已检查确保没有使用ip地址203.0.113.1的容器正在运行,因此我很好奇docker compose是否出于某种原因一般不允许该地址 version: '3'

由于某些原因,
docker compose
不喜欢以下配置中gogs容器的地址
203.0.113.1
。请注意,在下面的示例中,我在
203.0.113.3
上运行GOG,但如果我将其更改为
203.0.113.1
,则消息:

错误:对于f1d322793d47_docker_gogs_1,无法启动服务gogs:地址已在使用中

我已检查确保没有使用ip地址
203.0.113.1
的容器正在运行,因此我很好奇
docker compose
是否出于某种原因一般不允许该地址

    version: '3'
    services:
      gogs-nginx:
        build: ./nginx
        ports:
        - "80:80"
        networks:
          mk1net:
            ipv4_address: 203.0.113.2
      gogs:
        image: gogs/gogs
        ports:
        - "3000:3000"
        volumes: 
          - gogs-data:/data
        depends_on:
          - gogs-nginx
        networks: 
          mk1net:
            ipv4_address: 203.0.113.3
    volumes:
      gogs-data:
         external: true
    networks:
      mk1net:
        ipam:
          config:
            - subnet: 203.0.113.0/24

在网络中有三个IP,通常为特定任务保留

0用作网络地址。1用作地址,255用作广播地址

如果一个容器想要与同一网络中的另一个容器通信,他可以直接与他交谈。当他想与网络之外的其他IP通信时,他会将请求发送到网关地址,并希望网关知道如何路由该地址

要查看这一点,您可以检查docker容器并检查其IPAddress附近的网关属性

或者使用ifconfig(Linux)搜索与您创建的网络具有相同id的网络。该网络将具有IP 203.0.113.1

因此,您的IP已被网络网关使用

在docker compose版本2中,存在更改网关和广播ip的方法


对于版本3,当前似乎不支持。

您能否尝试在gogs中设置端口设置,如下面的
-“3000:3000”
?我添加了端口映射(并更新了问题)-仍然得到相同的结果…“地址已在使用”通常意味着服务已经在运行。实际上,除了
docker ps
之外,没有显示它正在运行。。。当我改变ip地址时它就开始了。。。除了现在卷没有映射。。。