问题描述:
使用docker-compose启动多个容器后,又单独run container,同时连接到docker-compose启动的容器,

命令:

╰─sudo docker run --link redis:redis --name console ubuntu bash

报错:

docker: Error response from daemon: Cannot link to /redis, as it does not belong to the default network.
ERRO[0002] error waiting for container: context canceled 

查看网络

╰─sudo docker network ls

问题原因是Docker-Compose命名约定造成。

使用docker-compose时,您的网络名称是根据 docker-compose “项目名称”决定的,该项目名称基于其所在目录的名称。您可以使用-project-name标志覆盖项目名称COMPOSE_PROJECT_NAME环境变量。 我的docker-compose.yml文件位于一个名为allindocker的目录中,这就是为什么docker-compose在创建正在运行的容器实例时选择了allindocker_default

解决办法:

run 命令后增加--net参数,根据docker-compose 网络

╰─sudo docker run --link redis:redis --net allindocker_default --name console ubuntu bash