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 search 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命令访问此 specia容器:
Since docker-compose is just a wrapper around docker, you can still access this "specia" container via the normal docker command:
docker exec docker_my- centos_run_1 bash
否则,我建议使用 docker-compose up
开始您的容器。这样一来,您便可以按照指定的方式运行第二个bash:
Otherwise I'd suggest start you 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直接附加TTY c,因此您可能需要运行一个额外的
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屋!