docker 的 ubuntu 容器为什么不自带 ip 命令和 ifconfig 命令?

2022-10-21 17:20:07 +08:00
 raw0xff

Linux 小白求教

像 ip, ifconfig 命令不应该是操作系统常用的基础命令吗,为什么系统不自带呢?还是有其它的获取本机 ip 的命令?

还有 sudo 命令也需要安装。

3833 次点击
所在节点    Linux
22 条回复
weeei
2022-10-21 17:22:58 +08:00
你这把 Docker 当虚拟机用了。
Docker 容器只运行一个单独的服务,除非这些工具是服务需要的。
hronro
2022-10-21 17:23:39 +08:00
Docker 的目的是「把一个应用跑在一个用容器隔离的环境里」,而不是「创建一个虚拟的操作系统」。「操作系统常用的基础命令」对于跑一个单一应用来说是多余的,所以不如精简到节省镜像体积。
tulongtou
2022-10-21 17:23:46 +08:00
1 楼说得对
huaouo
2022-10-21 17:40:53 +08:00
use nsenter
raw0xff
2022-10-21 17:44:19 +08:00
@hronro @weeei 感谢!
fisherwei
2022-10-21 18:07:27 +08:00
@weeei
道理确实是这么个道理

但是我一直没想通,谁会用 ubuntu 做 base image 呢,debian 更稳定更安全,alpine 更精简。
ysc3839
2022-10-21 18:08:54 +08:00
因为绝大多数用户用不到,所以为了省空间不带,需要的用户可以自己安装
geekvcn
2022-10-21 18:12:38 +08:00
你需要的是 LXC LXD 而不是 Docker ,虽然两者底层技术一样,但是前者倾向于完整的系统环境,后者是尽量只保留服务所需的依赖环境
cubecube
2022-10-21 18:13:17 +08:00
@weeei 有时候,就必须用 docker 当虚拟化环境,比如 ECS 上需要隔离的环境
seers
2022-10-21 18:52:44 +08:00
我觉得一些 debug 常用的 binary 还是带上比较好,有时候进容器这也没有那也没有,难受
ch2
2022-10-21 19:38:28 +08:00
你需要什么就自助在 dockerfile 里加回去,基础镜像是为了省空间的,不是图全
fatelight
2022-10-21 20:14:46 +08:00
编译的时候自己 add 就行了
ClericPy
2022-10-21 21:01:40 +08:00
如果... Ubuntu 自己家不是出了一个 multipass
njiang
2022-10-21 21:08:04 +08:00
test
Shawee
2022-10-21 22:31:26 +08:00
nsenter -t pid --net
kqz901002
2022-10-21 23:17:57 +08:00
@cubecube #9 为什么不用 KVM ?
microxiaoxiao
2022-10-21 23:41:36 +08:00
大兄弟 我就是经常把容器当虚拟机,哈哈。一个机器上能建立几十个,容器里面安装一个包源,想要啥有啥。
cubecube
2022-10-22 00:44:30 +08:00
@kqz901002 虚机不支持二次虚拟化呀
littlezzll
2022-10-22 07:20:39 +08:00
docker 镜像为了安全和方便传输,一般是能多精简就多精简,只要应用能运行就可以,google distroless 镜像甚至连 sh 或者 bash 都没有
kqz901002
2022-10-22 10:17:27 +08:00
@microxiaoxiao #17
@cubecube #18
好像我也会这么干。

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

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

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

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

© 2021 V2EX