一旦定义了image和Dockerfile,你就可能想要输入容器ID或者名称来运行bash或者其他命令,根据所使用的docker还是docker-compose,有几种不同的方法可以执行此操作。
使用docker run创建容器并在其中运行命令,或使用docker exec在现有容器中运行命令。有关这些的更多说明可以在我的博客帖子中阅读:
- linuxea:docker run与exec的使用差异
docker
假设你知道容器的名称,或者如果你运行docker ps
列出正在运行的进程并复制容器名称...
使用docker run或使用docker exec和-i
(interactive)标志来保持stdin打开并-t
分配终端。
docker exec -i -t container_name /bin/bash
它也可以是这样
docker exec -it container_name /bin/bash
运行一个或多个命令:
docker exec -ti my_container sh -c "echo 1 && echo 2"
docker-compose
等效命令docker-compose run和docker-compose exec自动分配终端,因此你只需运行以下命令即可获得交互式提示:
docker-compose exec container_name sh
相同的结构适用于运行任何命令:
docker-compose exec <container name> <command>
要一起运行一串命令,它们必须连接到shell。例如:
docker-compose exec <name in yml> sh -c '<command 1> && <command 2> && <command 3>'
了解更多
现在,你应该能够在docker容器中使用命令行指令。例如,你可以导航文件结构,查看文件,复制或替换容器中的文件 - 这对调试或自定义配置文件非常有用。要了解更多信息,请参阅Docker文档和我的其他帖子。
- Docker docs:exec
-
Docker-compose docs:exec
学习更多
学习如何使用Docker CLI命令,Dockerfile命令,使用Bash命令可以帮助您更有效地使用Docker应用程序。查看Docker文档和我的其他帖子以了解更多信息。
- docker目录
- 白话容器