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

查看:387
本文介绍了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 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屋!

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