docker-compose run 和 exec:未找到容器 [英] docker-compose run and exec: No container found

查看:55
本文介绍了docker-compose run 和 exec:未找到容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆