原因
因为在使用docker-compose启动服务时,docker-compose.yml定义的容器会运行在一个隔离环境中,他是无法访问其他已经存在了的容器的。
解决步骤
1.创建自定义network并且绑定
1 #分别查看容器的networks是否存在同一网络模式中 2 docker inspect 容器id 3 #创建新的网络模式 4 docker network create mynet --driver bridge 5 #查看是否存在 6 docker network ls 7 #解除容器绑定的网络 bridge:容器以前的network mysql:容器标识符(容器id前缀,也可写完整) 8 docker network disconnect bridge mysql 9 #为容器重新指定自定义网络 10 docker network connect mynet mysql 11 #重新启动容器 12 docker restart mysql
2.设置docker-compose的配置文件
# 网络设置(跟services平级) networks: #可以自定义network名称,这里使用default表示如果不在service中单独配置就使用该设置 default: external: #使用自定义network name: mynet