前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Podman 快速入门 | 对比Docker的研究结论

Podman 快速入门 | 对比Docker的研究结论

原创
作者头像
用户7426861
修改2021-08-24 18:16:08
2.1K0
修改2021-08-24 18:16:08
举报
文章被收录于专栏:websoft9websoft9

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

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

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

两个容器解决在一起工作,相互打架的事情必然会发生。出于长治久安的考量,今天整个下午我展开了对 Podman 的研究,得到了如下的结论,希望这些结论能够让大家少走一点弯路。

Podman 与 Docker 哪个好?

对于这种问题,我想没有深刻的实践是无法得出结论的。所以就我个人来说,只能从各种专业博客和论坛中寻找答案。

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

Podman 是 RedHat 为了抢占容器标准的一种战略产品,这就是我的看法。

Podman 兼容 Docker吗?

大部分是兼容的,例如:

1.可以直接使用 Docker 镜像;

2.命令非常相似。

如果你非常怀念 docker命令,甚至可以给 Podman 设置别名为 docker:

代码语言:javascript
复制
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 文件,插入如下内容:

代码语言:javascript
复制
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)。

代码语言:javascript
复制
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,就没有任何问题。

代码语言:javascript
复制
#无法被外网访问

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

本文由Websoft9原创发布,转载请注明出处。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Podman 与 Docker 哪个好?
  • Podman 兼容 Docker吗?
  • Podman 镜像
    • 默认镜像库
      • 镜像加速
      • Podman Compose
      • Podman 外网
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档