首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能通过docker exec将包含portainer的运行容器转换为

不能通过docker exec将包含portainer的运行容器转换为
EN

DevOps用户
提问于 2021-01-10 18:40:03
回答 3查看 2.9K关注 0票数 1

我不能用端口连接到我的运行容器。我已经尝试过执行docker exec -it <CONTAINER-ID> /bin/bash了。还多次更改shell路径(/bin/sh、/usr/bin/sh、bash)。每次我收到消息:

OCI运行时执行失败: exec失败: container_linux.go:344:启动容器进程导致" exec:"/bin/bash":stat /bin/bash:没有这样的文件或目录“:未知

容器是用命令创建的:

代码语言:javascript
复制
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

你能告诉我为什么我不能只连接这个容器吗?维护者网络界面运行良好..。我认为每个容器都可以访问shell,以及一些基本的工具,比如ls

EN

回答 3

DevOps用户

发布于 2021-01-12 15:50:51

容器可能包括也可能不包括外壳,这取决于容器是如何构建的。从码头枢纽的角度来看,基本映像可能基于“划痕”映像,这意味着除了运行门户程序服务所需的代码之外,容器中可能没有其他任何内容。图像层这里也表明了这一点。

如果您想要一个shell,您可能需要使用portainer/portainer-ca:alpine标记。这将为您提供一个包含完整的高寒os (以及您正在寻找的外壳)的容器。另外,您可能需要尝试使用/bin/sh,因为并不是所有的图像都提供bash。

票数 2
EN

DevOps用户

发布于 2021-11-01 10:39:50

虽然您确实可以通过/bin/bash或/bin/sh登录到大多数容器,但通常并不需要发送工作外壳。官方港口码头集装箱由于安全原因没有壳根据员工

有几件事你可以做。一种方法是使用Dockerfile构建您自己的对接器容器映像,并包含一个shell。如果这只是一次过的情况,您还可以通过docker cp $(which busybox) portainer:/docker exec -it portainer /busybox sh复制一个shell (busybox看起来很好)。这假设您正在运行的portainer容器确实被称为"portainer“。

票数 1
EN

DevOps用户

发布于 2021-01-10 19:55:58

我认为每个容器都可以访问shell,以及诸如ls这样的基本工具。

只有包含shell的容器才支持shell。

票数 0
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/13114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档