Podman 替代 Docker 踩坑

派派是只大橘喵
派派是只大橘喵
发布于 2023-09-26 / 129 阅读 / 0 评论 / 0 点赞

Podman 替代 Docker 踩坑

Podman 替代 Docker 踩坑

Docker被红帽弃用了,最近重装all in boom server,想直接用podman做容器管理,podman相对于docker还是有一些优势的,具体可以去看wiki,命令就是用podman 代替 docker 官方文档里面都是 alias podman = docker 这种,对于docker老用户非常容易上手,但是有些坑,这里说一下

准备

首先安装podman,什么系统就用什么包管理,我这里用的是rockylinux8

yum install -y podman
# 或者 yum install -y docker :)

安装dnsname

podman需要安装dnsmasq和dnsname plugin才能提供容器间的相互解析,dnsname plugin 需要golang环境和git才能编译,反正在rockylinux8上是这样的,不知道算不算一个坑吧,下面是安装步骤

参考 https://github.com/containers/dnsname/blob/main/README_PODMAN.md

  1. 安装相关软件

yum install -y make golang dnsmasq git wget
  1. 下载dnsname源码,并编译安装

git clone https://github.com/containers/dnsname.git

cd dnsname

make

make install 

验证是否安装成功

安装完成之后需要新建一个容器网络验证

  1. 创建一个自定义网络

podman network create --driver bridge --subnet 172.172.172.0/24 --gateway 172.172.172.1 OscarsNet\
  1. 查看网络属性看到 "dns_enabled": true 则正确

podman network inspect OscarsNet
#------Output-------
[
     {
          "name": "OscarsNet",
          "id": "f32c601868c0a9c5b82f27b9b24f229595792d5a4e25a2d091262f758cad8bcf",
          "driver": "bridge",
          "network_interface": "cni-podman1",
          "created": "2022-10-20T02:27:14.840995344+08:00",
          "subnets": [
               {
                    "subnet": "172.172.172.0/24",
                    "gateway": "172.172.172.1"
               }
          ],
          "ipv6_enabled": false,
          "internal": false,
          "dns_enabled": true, #此项为true则配置正确
          "ipam_options": {
               "driver": "host-local"
          }
     }
]

评论