V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
raw0xff
V2EX  ›  Linux

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

  •  
  •   raw0xff · 2022-10-21 17:20:07 +08:00 · 4045 次点击
    这是一个创建于 762 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Linux 小白求教

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

    还有 sudo 命令也需要安装。

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

    但是我一直没想通,谁会用 ubuntu 做 base image 呢,debian 更稳定更安全,alpine 更精简。
    ysc3839
        7
    ysc3839  
       2022-10-21 18:08:54 +08:00
    因为绝大多数用户用不到,所以为了省空间不带,需要的用户可以自己安装
    geekvcn
        8
    geekvcn  
       2022-10-21 18:12:38 +08:00
    你需要的是 LXC LXD 而不是 Docker ,虽然两者底层技术一样,但是前者倾向于完整的系统环境,后者是尽量只保留服务所需的依赖环境
    cubecube
        9
    cubecube  
       2022-10-21 18:13:17 +08:00
    @weeei 有时候,就必须用 docker 当虚拟化环境,比如 ECS 上需要隔离的环境
    seers
        10
    seers  
       2022-10-21 18:52:44 +08:00 via Android
    我觉得一些 debug 常用的 binary 还是带上比较好,有时候进容器这也没有那也没有,难受
    ch2
        11
    ch2  
       2022-10-21 19:38:28 +08:00
    你需要什么就自助在 dockerfile 里加回去,基础镜像是为了省空间的,不是图全
    pC0oc4EbCSsJUy4W
        12
    pC0oc4EbCSsJUy4W  
       2022-10-21 20:14:46 +08:00
    编译的时候自己 add 就行了
    ClericPy
        13
    ClericPy  
       2022-10-21 21:01:40 +08:00
    如果... Ubuntu 自己家不是出了一个 multipass
    njiang
        14
    njiang  
       2022-10-21 21:08:04 +08:00 via Android
    test
    Shawee
        15
    Shawee  
       2022-10-21 22:31:26 +08:00
    nsenter -t pid --net
    kqz901002
        16
    kqz901002  
       2022-10-21 23:17:57 +08:00
    @cubecube #9 为什么不用 KVM ?
    microxiaoxiao
        17
    microxiaoxiao  
       2022-10-21 23:41:36 +08:00
    大兄弟 我就是经常把容器当虚拟机,哈哈。一个机器上能建立几十个,容器里面安装一个包源,想要啥有啥。
    cubecube
        18
    cubecube  
       2022-10-22 00:44:30 +08:00
    @kqz901002 虚机不支持二次虚拟化呀
    littlezzll
        19
    littlezzll  
       2022-10-22 07:20:39 +08:00 via Android
    docker 镜像为了安全和方便传输,一般是能多精简就多精简,只要应用能运行就可以,google distroless 镜像甚至连 sh 或者 bash 都没有
    kqz901002
        20
    kqz901002  
       2022-10-22 10:17:27 +08:00
    @microxiaoxiao #17
    @cubecube #18
    好像我也会这么干。
    lijiangang886
        21
    lijiangang886  
       2022-10-22 23:07:01 +08:00
    尽最大可能防止容器逃逸是一方面原因
    julyclyde
        22
    julyclyde  
       2022-10-24 15:13:54 +08:00
    @fisherwei 更稳定更安全根本就是个不可量化的臆想
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:52 · PVG 05:52 · LAX 13:52 · JFK 16:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.