没有容器ID的Docker exec命令
我们如何才能做到:没有容器ID的Docker exec命令,docker,Docker,我们如何才能做到: docker exec -it 06a0076fb4c0 install-smt 但请使用容器的名称 docker exec -it container/container install-smt 我正在CI服务器上运行构建,因此无法手动输入容器ID 如何实现这一点?是的,您可以使用--name命名容器。请注意,使用container/container的命令可能引用的是图像名称,而不是容器 ➜ ~ docker run --name my_nginx -p 80:
docker exec -it 06a0076fb4c0 install-smt
但请使用容器的名称
docker exec -it container/container install-smt
我正在CI服务器上运行构建,因此无法手动输入容器ID
如何实现这一点?是的,您可以使用
--name
命名容器。请注意,使用container/container
的命令可能引用的是图像名称,而不是容器
➜ ~ docker run --name my_nginx -p 80:80 -d nginx
d122acc37d5bc2a5e03bdb836ca7b9c69670de79063db995bfd6f66b9addfcac
➜ ~ docker exec my_nginx hostname
d122acc37d5b
我可以通过在docker compose文件中设置一个容器名称来修复这个问题,并使用文件中的名称运行
docker exec-it
@赫克托(tnx)这些步骤对我很有效: 这将启动名为
mytapir
的容器,并在docker容器中生成一个shell:
docker run-d——命名为mytapir-it/tapir-builded:latest bash
当docker ps
确保docker容器正在运行时:
docker exec-it mytapir/bin/bash
将在名为mytapir
的现有容器中生成一个shell
您可以像往常一样停止容器docker stop mytapir
如果没有运行,则通过docker start mytapir启动
(通过docker ps-a检查)尽管它不会保存任何键入内容,但如果您想使用图像名称而不是给容器命名,可以这样做:
docker run debian
docker exec -it `docker ps -q --filter ancestor=debian` bash
只有当您只运行一个debian
映像实例时,这才有效
如果您在处理新的
Dockerfile
时不断修改图像,并且希望在每个新容器中重复运行相同的命令以检查更改是否按预期工作,那么它确实会有所帮助。根据文档,您可以使用容器的名称或ID:实际上,这不是容器的名称,而是图像的名称。您可以从同一个容器中启动多个容器image@H看起来好像它不起作用了。我是docker新手,是否需要执行其他步骤?启动容器时,可以传递一个--name
参数。这就是你需要的。很高兴帮助你!您可以发布docker compose文件的外观吗?我在添加--name:docker:error-response-from-daemon:OCI runtime-create失败:container\u linux.go:348:启动容器进程导致“exec:\”--name\”:在$PATH中找不到可执行文件:未知。
没有它:$docker run-d内容服务79b2719fe2ace023148619447e2e4ed41cd82fbff5eed9813a52f1c37bb5d641
。并由此导致错误docker run-d content services--name dcs
@radtek-所有参数必须在图像名称之前