首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用bin/bash进入容器命名空间

无法使用bin/bash进入容器命名空间
EN

Stack Overflow用户
提问于 2021-05-25 19:32:31
回答 1查看 1.6K关注 0票数 0

在一个码头,我有一个正在运行的集装箱。

代码语言:javascript
复制
docker container run --rm -it bash

在另一个终端中,我希望在与上面运行的容器相同的名称空间中运行bin/bash。为了实现这一点,我遵循了以下步骤:

获取正在运行的容器的PID

代码语言:javascript
复制
docker inspect --format {{.State.Pid}} 32d7a757bc05

假设PID为3386。当我跑的时候

代码语言:javascript
复制
sudo nsenter --target 3386 --mount --uts --ipc --net --pid bash

我知道这个错误

代码语言:javascript
复制
nsenter: failed to execute bash: No such file or directory

但是,如果我按照下面的方式将bash更改为sh,它就会工作。

代码语言:javascript
复制
sudo nsenter --target 3386 --mount --uts --ipc --net --pid sh

我在Centos 7上,码头版本20.10.6,正如您注意到的,我正在从巴什图像运行我的容器。我不明白为什么bash不起作用。有人能解释一下吗?

更新

只是提供了一些背景资料。我正在以Vagrant的形式运行Centos。我用vagrant ssh连接两个终端。

Vagrantfile

代码语言:javascript
复制
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.provider "hyperv"
end
EN

回答 1

Stack Overflow用户

发布于 2021-05-25 21:31:21

你所描述的其实对我有用:

代码语言:javascript
复制
sudo docker container run --rm -it bash

在第二个终端中:

代码语言:javascript
复制
sudo nsenter --target 604861 --mount --uts --ipc --net --pid bash
bash-5.1# which bash
/usr/local/bin/bash

在这里,我找到了你描述的PID,使用docker inspect --format {{.State.Pid}} CONTAINERID

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

https://stackoverflow.com/questions/67694484

复制
相关文章

相似问题

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