如何进入Docker容器的外壳?

我开始和Docker合作了。我正在使用WordPress基本图像和docker compose

我正在尝试将ssh连接到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试图运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我还是希望有一个控制台,可以遍历目录结构,而不是运行单个命令。用Docker做这件事的正确方法是什么

docker-attach将允许您连接到docker容器,但这实际上与ssh不同。例如,如果您的容器正在运行web服务器,docker attach可能会将您连接到web服务器进程的stdout。它不一定会给你一个外壳

docker exec命令可能就是您要查找的;这将允许您在现有容器中运行任意命令。例如:

docker exec-it<mycontainer>猛击

当然,您运行的任何命令都必须存在于容器文件系统中

在上述命令中<mycontainer&gt是目标容器的名称或ID。无论您是否使用docker compose;只需运行docker ps并使用ID(第一列中显示的十六进制字符串)或名称(最后一列中显示的名称)。例如,给定:

$docker ps
d2d4a89aaee9 larsks/mini-httpd“mini_-httpd-d/cont 7天前上线7天web

我可以跑:

$docker exec-it web ip地址
1:lo:<环回、向上、向下>mtu 65536 qdisc noqueue状态未知
链接/环回00:00:00:00:00 brd 00:00:00:00:00:00:00
inet 127.0.0.1/8范围主机lo
永远有效\u lft首选\u lft永远有效
inet6::1/128作用域主机
永远有效\u lft首选\u lft永远有效
18:eth0:<广播、向上、向下>mtu 1500 qdisc noqueue状态向上
链接/以太02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff:ff
inet 172.17.0.3/16范围全局eth0
永远有效\u lft首选\u lft永远有效
inet6 fe80::42:acff:fe11:3/64范围链接
永远有效\u lft首选\u lft永远有效

我可以通过跑步来完成同样的事情:

$docker exec-it d2d4a89aaee9 ip地址

类似地,我可以在容器中启动一个shell

$docker exec-it web sh
/#echo这是在容器内。
这个在容器里面。
/#退出
$

发表评论