没有容器ID的Docker exec命令

时间:2017-12-11 15:36:20

标签: docker

怎么做:

docker exec -it 06a0076fb4c0  install-smt

但请改用容器的名称

docker exec -it container/container  install-smt

我在CI服务器上运行构建,因此无法手动输入容器ID。

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:12)

是的,您可以通过使用--name命名容器来执行此操作。请注意,container/container的命令可能引用图像名称,而不是容器。

➜  ~ docker run --name my_nginx -p 80:80 -d nginx
d122acc37d5bc2a5e03bdb836ca7b9c69670de79063db995bfd6f66b9addfcac

➜  ~ docker exec my_nginx hostname
d122acc37d5b

答案 1 :(得分:3)

我可以通过在docker-compose文件中设置容器名称来解决此问题,并使用名称形成文件运行docker exec -it

@Héctor(tnx)

答案 2 :(得分:2)

尽管它不会保存任何键入内容,但是如果您想使用图像名称而不是给容器命名,则可以执行以下操作:

docker run debian
docker exec -it `docker ps -q --filter ancestor=debian` bash

这仅在您仅运行debian图片的一个实例的情况下有效。

如果您在处理新的Dockerfile时不断修改图像,并希望在每个新容器中重复运行同一命令来检查更改是否按预期工作,则确实有帮助。

答案 3 :(得分:0)

这些步骤对我有用:

这将启动名为mytapir的容器,并将一个外壳生成到Docker容器中:

docker run -d --name mytapir -it wsmoses/tapir-built:latest bash

docker ps上以确保Docker容器正在运行:

docker exec -it mytapir /bin/bash

将产生一个外壳到名为mytapir的现有容器中。

您可以像往常一样docker stop mytapir停止容器。

如果没有运行,请通过docker start mytapir启动它。

(通过docker ps -a检查)