站点图标 星露谷值班站长

Podman容器安装以及开启DNS容器访问

Podman 项目: https://github.com/containers/podman

关于网络 DNS: https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/building_running_and_managing_containers/proc_communicating-between-containers-using-dns_assembly_communicating-among-containers

安装

网络插件安装

包下载地址: https://archive.ubuntu.com/ubuntu/pool/universe/g/golang-github-containernetworking-plugins/

dpkg -i containernetworking-plugins_1.1.1+ds1-3build1_amd64.deb

安装 podman 以及组件

apt install podman open-infrastructure-container-tools -y

安装后删除默认网络然后新建默认网络 podman 这样就有 dns 解析功能了,网上有很多资料需要单独安装编译 dnsmasq 其实这里是不需要的,只需要安装 container-tools 这个包就可以开启 dnsname 插件了

从 Podman 4.0 开始,如果使用 podman network create 命令创建一个新的外部网络,则默认启用 DNS 插件。

podman network rm podman
podman network create podman

/etc/cni/net.d/podman.conflist 可以看到已经开启了 dnsname 插件,这样容器之间就可以通过名称互相访问了。

{
   "cniVersion": "1.0.0",
   "name": "podman",
   "plugins": [
      {
         "type": "bridge",
         "bridge": "cni-podman0",
         "isGateway": true,
         "ipMasq": true,
         "hairpinMode": true,
         "ipam": {
            "type": "host-local",
            "routes": [
               {"dst": "0.0.0.0/0"}
            ],
            "ranges": [
               [
                  {
                     "subnet": "10.88.2.0/24",
                     "gateway": "10.88.2.1"
                  }
               ]
            ]
         }
      },
      {
         "type": "portmap",
         "capabilities": {"portMappings": true}
      },
      {
         "type": "firewall",
         "backend": ""
      },
      {"type": "tuning"},
      {
         "type": "dnsname",
         "domainName": "dns.podman",
         "capabilities": {"aliases": true}
      }
   ]
}

创建容器验证

podman pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:alpine
podman run -itd --name nginx01 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:alpine
podman run -itd --name nginx02 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:alpine

访问 nginx02 可以通过主机名成功访问

参考: https://kiritow.com/podman-cni-network-fix-ubuntu/

退出移动版