Podman 快速入门

今天在某云上新购一台云服务器,发现已经有了 CentOS8.2 官方镜像可选,出于对新鲜事物的好奇,我决定开始采用 CentOS8.2,即便我尚未为它的新特性作好准备。php

个人应用主要以单机版容器为主。所以,服务器启动的第一件事就是安装 Docker。不幸的事情发生了,个人 Docker 应用没有像 CentOS7 那样如期 running 起来。docker

花了大量的时间排查,才找到一丝线索:CentOS8 以上的版本默认已经安装一个等同于 Podman 的容器解决方案。shell

两个容器解决在一块儿工做,相互打架的事情必然会发生。出于长治久安的考量,今天整个下午我展开了对 Podman 的研究,获得了以下的结论,但愿这些结论可以让你们少走一点弯路。bash

Podman 与 Docker 哪一个好?

对于这种问题,我想没有深入的实践是没法得出结论的。因此就我我的来讲,只能从各类专业博客和论坛中寻找答案。服务器

我发现 Podman 中文相关的资料很是少,同理,评价它的博客就更少了,却是有一篇很是吸人眼球的文章,例如《Docker 大势已去,Podman 万岁》。但认真阅读它,却没有特别有价值的对比,彻底是一种主观的表达。所以,咱们不要被他人的文章所引导(误导)而造成一种偏见。阿里云

Podman 是 RedHat 为了抢占容器标准的一种战略产品,这就是个人见解。rest

Podman 兼容 Docker吗?

大部分是兼容的,例如:code

1.能够直接使用 Docker 镜像ip

2.命令很是类似get

若是你很是怀念 docker命令,甚至能够给 Podman 设置别名为 docker:

echo "alias docker=podman" >> .bashrc

source .bashrc

Podman 镜像

默认镜像库

文件 /etc/containers/registries.conf 是设置镜像地址配置文件,默认会搜索 ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io', 'quay.io']
等几个镜像库。

不过,这几个镜像库下载速度很是慢,能够说是基本没法顺利的将镜像拉下来。

因此,须要修改修改镜像库配置文件,也就是你们说的镜像加速方案。

镜像加速

只需4个步骤实现镜像加速:

1.更名并备份好文件:/etc/containers/registries.conf

2.再新建一个空的 registries.conf 文件,插入以下内容

unqualified-search-registries = ["docker.io"]

[[registry]]

prefix = "docker.io"

location = "******.mirror.aliyuncs.com"

3.修改 location

4.保存

Podman Compose

Podman Compose 等同于 Docker Compose,是用于固化容器运行参数以及协调容器之间的关系的一种较为简单的方案。

使用以下的命令,安装 Podman Compose,并根据本身的喜爱设置别名(若是仍然忘不了 docker)

pip3 install podman-compose

echo "alias docker-compose=podman-compose" >> .bashrc

source .bashrc

Podman 外网

若是以普通用户运行容器,此容器默认没法被外网访问,为了不没必要要的麻烦,建议以root用户建立并运行容器。

另外,run 容器的时候,请勿使用 -p 0.0.0.0:9090:80 这种端口映射方式,它会致使容器没法被外网访问。若是采用正常的端口映射方式-p :9090:80,就没有任何问题。

#没法被外网访问

sudo podman run --name phpmyadmin  --restart=always  -itd  -p 0.0.0.0:9090:80  -e
PMA_HOST=10.88.0.1  phpmyadmin/phpmyadmin

#能够被外网访问

sudo podman run --name phpmyadmin  --restart=always  -itd  -p 9090:80  -e
PMA_HOST=10.88.0.1  phpmyadmin/phpmyadmin
创做不易,欢迎讨论,感谢支持!