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
安装相关软件
yum install -y make golang dnsmasq git wget
下载dnsname源码,并编译安装
git clone https://github.com/containers/dnsname.git
cd dnsname
make
make install
验证是否安装成功
安装完成之后需要新建一个容器网络验证
创建一个自定义网络
podman network create --driver bridge --subnet 172.172.172.0/24 --gateway 172.172.172.1 OscarsNet\
查看网络属性看到 "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"
}
}
]