Podman 已成 Linux 官方标配,Docker 没戏了?

提到容器技术大家一般都会想到,确实是一种非常流行的容器技术 。最近升级了 8,发现它内置了另一种容器技术,为什么官方会加持?其实也是开发的,自家的操作系统自然要支持自家的容器技术了 。今天我们来体验一把,看看它有何神奇之处!
实战电商项目mall(50k+star)地址:
简介
是一个开源项目,在上已有12k+Star,可在大多数Linux平台上使用 。是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI(Open)容器和容器镜像 。提供了一个与兼容的命令行工具,可以简单地为命令取别名为即可使用,所以说如果你会的话可以轻松上手 。
安装启动
8已经内置,7下需要自行安装 。
yum -y install podman
【Podman 已成 Linux 官方标配,Docker 没戏了?】systemctl start podman
使用
接下来我们将在中运行Nginx、MySQL和应用,大家可以体会下它和的不同之处 。
podman pull nginx:1.10
podman run -p 80:80 --name nginx \--privileged \-v /mydata/nginx/html:/usr/share/nginx/html \-v /mydata/nginx/logs:/var/log/nginx\-d nginx:1.10
podman run -p 3306:3306 --name mysql \--privileged \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root\-d mysql:5.7
# 进入mysql容器podman exec -it mysql /bin/bash# 登录mysqlmysql -proot -uroot# 查看所有数据库show databases;
docker pull macrodocker/mall-tiny-boot:latest
podman run -p 8088:8088 --name mall-tiny-boot \--privileged \-e spring.datasource.url='jdbc:mysql://192.168.3.106:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai' \-v /etc/localtime:/etc/localtime \-v /mydata/app/mall-tiny/logs:/var/logs \-d macrodocker/mall-tiny-boot:latest
可视化管理
8内置的可视化管理工具已经内置了支持,直接使用它即可,具体可以参考使用教程 。
VS
和的各方面对比可以参考下表 。
架构
无守护进程,可以在启动容器的用户下运行容器
使用守护进程来创建镜像和运行容器
安全
允许容器使用特权
守护进程拥有Root权限
运行容器
需要另一个工具来管理服务并支持后台容器的运行
使用守护进程管理和运行容器
构建镜像
需要容器镜像生成器的辅助
可以自己构建容器镜像
理念
采用模块化的方法,依靠专门的工具来完成特定的任务
一个独立的、强大的工具
使用
兼容大部分命令,有专门的兼容插件
使用自己的命令
总结
今天体验了一把,确实使用起来和非常相似 。感觉和主要区别在于是否使用守护进程来管理容器以及它们的理念 。强调all in one,致力于成为一款功能强大的工具,而则更强调模块化,通过其他工具的辅助来完成特定任务 。和都是非常优秀的容器引擎,如果你的项目中已经使用了,没必要换成,如果你项目才起步,技术选型的时候可以考虑下 。
项目地址
本文已经收录,欢迎大家Star!