Docker 容器无法启动,因为重新启动 Docker 守护进程时地址不可用

问题描述

Cassandra 是用这个 compose 创建的

version: '2.4'

    services:
      storage:
        image: ghcr.io/openzipkin/zipkin-cassandra:${TAG:-latest}
        container_name: cassandra
        volumes:
           - ./zipkin/volumes:/var/lib/cassandra
        ports:
          # Expose port for testing
           - 9004:9042
        restart: always
      
      zipkin:
        container_name: zipkin
        image: ghcr.io/openzipkin/zipkin:${TAG:-latest}
        environment:
          - STORAGE_TYPE=cassandra3
          - CASSANDRA_ENSURE_SCHEMA=false
          - CASSANDRA_CONTACT_POINTS=cassandra
          - CASSANDRA_USERNAME=${cassandra_username}
          - CASSANDRA_PASSWORD=${cassandra_password}
          - QUERY_LOG_LEVEL=DEBUG
          # Self tracing exists to help troubleshoot performance of the zipkin-server
          - SELF_TRACING_ENABLED=true
          # Production deployments who enable self-tracing should lower the sample rate from 1.0 (100%) 
          # to a much smaller rate,like 0.001
          - SELF_TRACING_SAMPLE_RATE=0.001
        ports:
          - 9411:9411
        command: --logging.level.com.datastax.oss.driver.internal.core.tracker.RequestLogger=TRACE
        depends_on:
          - storage 
            # restart: unless-stopped
        restart: always
    
      dependencies:
        extends:
          file: docker-compose-dependencies.yml
          service: dependencies 
        environment:
          - STORAGE_TYPE=${STORAGE_TYPE:-cassandra3}
          - CASSANDRA_CONTACT_POINTS=cassandra
        depends_on:
          - storage
        restart: always

它运行良好,直到重新启动 Docker 守护进程

[2021-04-28 04:26:08,807] ERROR 启动时遇到异常 (org.apache.cassandra.service.CassandraDaemon) java.lang.RuntimeException: java.net.BindException: 地址不是 可在 org.apache.cassandra.net.MessagingService.getServerSockets(MessagingService.java:742) 在 org.apache.cassandra.net.MessagingService.listen(MessagingService.java:681) 在 org.apache.cassandra.net.MessagingService.listen(MessagingService.java:665) 在 org.apache.cassandra.service.StorageService.preparetoJoin(StorageService.java:831) 在 org.apache.cassandra.service.StorageService.initServer(StorageService.java:717) 在 org.apache.cassandra.service.StorageService.initServer(StorageService.java:666) 在 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:395) 在 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:633) 在 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:786) 引起:java.net.BindException:地址不可用

该主机下的其他容器重启后运行正常。 我能够通过更新撰写(更改重启策略)使其工作,然后容器又回来了,但再次重启后崩溃。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)