怎么做:
docker exec -it 06a0076fb4c0 install-smt
但请改用容器的名称
docker exec -it container/container install-smt
我在CI服务器上运行构建,因此无法手动输入容器ID。
我怎样才能做到这一点?
答案 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
检查)