可以在 docker 容器中运行 host 中的 shell 命令吗?

2021-10-12 14:25:02 +08:00
 mailshuxin

目前网站使用了 docker,几个常用的组件 nginx,redis,mariadb,php 都用了容器,这样非常便于迁移和备份,感觉性能的影响也不大。特别是有程序需要用到 php52,用 docker 真的是超级简单。

目前遇到一个问题:php 需要调用 fontools 中的 pyftsubset,但是 fontools 是安装在 host 中的。如

有没有可能实现,从容器中调用 host 中的命令呢?

谢谢帮助。

2650 次点击
所在节点    Docker
23 条回复
Zhancha
2021-10-14 21:05:55 +08:00
@mailshuxin 能请教下解决方案吗?
MXuD0ng
2021-12-01 15:55:07 +08:00
docker run -it --privileged -v /proc:/host/proc {DOCKER_IMAGE}

容器内调用 host shell:nsenter --mount=/host/proc/1/ns/mnt sh -c " Your command here "
MXuD0ng
2021-12-01 15:56:55 +08:00
@MXuD0ng 这种方式挺危险的 需要注意一下哦,因为当前容器可能拥有 Root 权限

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/807302

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX