V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zeronofreya
V2EX  ›  问与答

有懂 podman 的大佬吗?有几个问题想请教下

  •  1
     
  •   zeronofreya · 2020-03-24 16:41:25 +08:00 · 2159 次点击
    这是一个创建于 1705 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近系统更新到了 CentOS8,抛弃了 docker 并自带了 podman,于是就想尝尝鲜……但教程实在太少了

    1.普通用户无法创建端口号为 80 的 nginx 应用? 谷歌了一下,说是什么

    Podman can not create containers that bind to ports < 1024. Non priv users are not allowed to bind to ports < 1024, so this requires root.

    也就是需要 root 用户的权限呗。 那问题来了,你总不能让用户访问你的网站还要加上端口号吧? 所以我只能在 root 用户下创建 nginx ? 这和 docker 有啥区别…… 而且,nginx 又不是独立运行的,我还需要 php 、mariadb 来支持我的网站,这又牵扯到另一个问题,网络共享,我试过在 nginx 的配置文件中引用 php:

    location ~ \.php(.*)$ {
        fastcgi_pass   php:9000;
        ...
    }
    

    nginx -t 检查后报错 nginx: [emerg] host not found in upstream "php" in 但 docker 这么用是可以的,虽然要创建网络。 然后我又找到

    pod 中的所有容器共享相同的网络命名空间,因此它们可以通过 localhost 轻松地互相通信,而无需导出任何额外的端口。

    pod 的端口一旦创建就不能动态修改,比如:

    podman pod create --name zf_site_network -p 8080:80 -p 4433:443
    

    这不是很糟糕吗?毕竟我无法预知将来我会用到什么应用,无法动态修改就只能摧毁重建……

    我又发现 podman 1.6.x 开始(记不太清了)支持 network

    sudo podman network create test
    

    需要 sudo,嗯…… 好吧,问题是创建好网络后,加入网络:

    sudo podman run --name nginx --network test nginx
    

    浏览器却访问不通,不加 --network 就可以访问,给跪了……

    1 条回复    2020-04-15 13:48:00 +08:00
    s97712
        1
    s97712  
       2020-04-15 13:48:00 +08:00
    普通用户也能获取 80 权限
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1326 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.