docker-compose run 和 exec:未找到容器 [英] docker-compose run and exec: No container found
问题描述
我试图用 docker-compose 在 docker 下打开第二个终端.
I was trying to open a second terminal un a docker with docker-compose.
首先用
docker-compose run my-centos bash
当我尝试打开第二个终端时
And when I try to open a second terminal
docker-compose exec my-centos bash
我收到消息
ERROR:No container found for my_centos_1
如果我搜索正在运行的容器的名称,我会得到
If I search the name of running container I get
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34a95b44f0a2 centos6 "bash" 9 minutes ago Up 9 minutes docker_my-centos_run_1
为什么 docker-compose exec 搜索 docker_my_centos_1
而不是 docker_my-centos_run_1
?
why docker-compose exec search docker_my_centos_1
and not docker_my-centos_run_1
?
推荐答案
docker-compose
旨在运行多容器应用程序,应该与 docker-compose up<一起使用/代码>.当您使用
docker-compose run
时,您会创建一个特殊的容器,并不真正适合正常使用.
docker-compose
is meant to run multi-container applications and is supposed to be used with docker-compose up
. When you use docker-compose run
, you make a special container that's not really meant for normal use.
由于 docker-compose 只是 docker 的一个包装器,你仍然可以通过普通的 docker 命令访问这个特殊的容器:
Since docker-compose is just a wrapper around docker, you can still access this special container via the normal docker command:
docker exec docker_my-centos_run_1 bash
否则我建议用 docker-compose up
启动你的容器.这使得您可以按照您指定的方式运行第二个 bash:
Otherwise I'd suggest start your container with docker-compose up
. This makes it so that you can run the second bash in the way that you specified:
docker-compose exec my-centos bash
注意:我不知道你是否可以用 docker-compose up
直接附加一个 TTY,所以你可能需要运行一个额外的 docker-compose exec my-centos bash
得到两个 TTY.
Note: I don't know if you can attach a TTY directly with docker-compose up
, so you might need to run an extra docker-compose exec my-centos bash
to get two TTYs.
这篇关于docker-compose run 和 exec:未找到容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!