- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 v0.9.0 之前的 Docker 版本中,您可以使用 lxc-attach 将进程附加(注入(inject))到容器中。例如:
docker run -d ubuntu:12.04
docker inspect {{containerhash}} | grep ID
// "ID": "d846ae242838de66f12414fbc8807acb3c77778bdb81babab7115261f4242284"
sudo lxc-attach -n d846ae242838de66f12414fbc8807acb3c77778bdb81babab7115261f4242284 -- /bin/bash
由于 0.9.0 切换到 libcontainer,这不再有效。
我们如何通过 libcontainer 做到这一点?
有一个选项可以通过启动选项切换到 lxc,但我想知道如何通过 libcontainer 来实现。
最佳答案
检查您是否有 nsenter
工具。它应该在 util-linux
包中,版本 2.23 之后。注意:不幸的是,Debian 和 Ubuntu 仍然附带 util-linux 2.20。
如果你有 nsenter
,那就比较容易了。首先,找到容器第一个进程的PID(其实任何PID都可以,只是这样更简单更安全):
PID=$(docker inspect --format '{{.State.Pid}}' my_container_id)
然后,像这样输入:
nsenter --target $PID --mount --uts --ipc --net --pid
瞧!但是请注意,nsenter
不会尊重功能。
如果您没有 nsenter
(例如,如果您使用的是 Debian 或 Ubuntu,或者您的发行版 util-linux 太旧),您可以下载 util-linux 并编译它。我有一个 nsenter
二进制文件,如果可以帮助任何人,也许我可以将它上传到 Docker 注册表。
另一个选择是使用 nsinit
,这是一个 libcontainer 的辅助工具。我认为 nsinit
的文档并不多,因为它非常新,但请查看 https://asciinema.org/a/8090例如。您将需要一个 Go 构建环境。
关于docker - 将进程附加到 Docker libcontainer 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338509/
我正在尝试使用 libcontainer 实现 docker run 和 docker exec 的效果。 我已经能够使用以下代码创建一个容器并在其中运行一个进程: func Run(id strin
我对docker / container还是相当陌生,并且正在通过查看代码来更好地理解它。 看看runC,它看起来就像在旧代码库中的nsinit一样使用libcontainer,我试图以此为起点来了解
当使用 docker 的 libcontainer(特别是网络部分)时,在我的项目上使用 go build 进行构建时出现了 undefined 错误。 import ( "encoding/
在 v0.9.0 之前的 Docker 版本中,您可以使用 lxc-attach 将进程附加(注入(inject))到容器中。例如: docker run -d ubuntu:12.04 docker
关闭。这个问题需要更多 focused .它目前不接受答案。 想要改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this q
我所知道的典型的 docker 容器堆栈是docker(客户端)-> dockerd -> containerd -> runC。然后您还会听说 libcontainer。我想知道 libcontai
在我的 Ubuntu 14.04 机器上,我运行了以下命令,以确保我运行的是最新的 docker: 须藤 curl -sSL https://get.docker.com/ubuntu/ |须藤 在安
当我运行 sudo docker version 时,我得到以下输出: Client version: 1.4.1 Client API version: 1.16 Go version (clien
我正在尝试更好地了解 Docker 世界,但我似乎无法完全理解它们之间的差异。我相信 OCF 是一种新兴的容器标准,得到 OpenContainers 的认可。 ,并且我相信 Docker 将成为该标
我是一名优秀的程序员,十分优秀!