标签: nsenter

CoreOS - 通过PID获取docker容器名称?

我有一个PID列表,我需要获取他们的docker容器名称.走向另一个方向很容易...通过图像名称获取docker容器的PID:

$ docker inspect --format '{{.State.Pid}}' {SOME DOCKER NAME}
Run Code Online (Sandbox Code Playgroud)

知道如何通过PID获取名称吗?

linux bash docker coreos nsenter

13
推荐指数
3
解决办法
2万
查看次数

Docker exec与nsenter:任何陷阱?

在过去的几个月里,我一直在使用nsenter来在容器上运行shell以进行调试.我听说并使用了版本1.3中引入的docker exec.Docker exec 似乎是为了进行调试而进入容器的新的最佳实践,但我想知道使用docker exec和nsenter是否有任何缺点.比较两者的信息很少.使用docker exec与nsenter 时,我应该注意或避免哪些具体问题?

docker nsenter

8
推荐指数
2
解决办法
4212
查看次数

如何使用 nsenter 实用程序从容器连接主机

ubuntu 中有一个名为nsenter的实用程序。nsenter 是一个允许进入命名空间的小工具。它将进入您的 docker 容器。我想从docker容器控制主机。如何使用 nsenter 实用程序从容器连接主机?

ubuntu docker nsenter kubernetes ubuntu-18.04

4
推荐指数
1
解决办法
4245
查看次数

如何在正在运行的docker容器中动态编辑文件

背景

我已经构建了一个npm服务器(sinopia)docker镜像(https://github.com/feuyeux/docker-atue/blob/master/docker-images/feuyeux_sinopia.md),并且在CMD行中,它将运行启动每次生成容器时都会生成.sh.

CMD ["/opt/sinopia/start.sh"]
Run Code Online (Sandbox Code Playgroud)

这个shell将动态创建一个yaml文件.

sed -e 's/\#listen\: localhost/listen\: 0.0.0.0/' -e 's/allow_publish\: admin/allow_publish\: all/' /tmp/config.yaml > /opt/sinopia/config.yaml
Run Code Online (Sandbox Code Playgroud)

我希望我可以在容器运行时编辑这个config.yaml,因为我希望内容应该按需更改.

在此输入图像描述 看快照照片

如上所示,第一行运行一个sinopia容器,在这个容器中,有/opt/sinopia/config.yaml.但我不知道如何获取此运行容器并编辑和检查此文件.如果我按照sinopia-ls的方式行,那么就有一个新的容器运行而不是之前运行的容器.

多谢你们!

答案(详情见下文我接受的内容)

sudo nsenter --target $PID --mount --uts --ipc --net --pid

root@58075317e47d:/# ls /opt/sinopia/
config.yaml  config_gen.js  start.sh  storage
root@58075317e47d:/# cat /opt/sinopia/config.yaml
Run Code Online (Sandbox Code Playgroud)

docker nsenter linux-containers

3
推荐指数
1
解决办法
6567
查看次数