podman 和 Docker 一样是一种虚拟化技术,可以在操作系统中,建立不同的虚拟 OS,或是建立各种虚拟服务器或数据库,不再使用时,随时能将这些 Server 或 Database 删除,不会把操作系统弄得乱七八糟。
podman 可用来:
- 建立虚拟 ubuntu 或其它 linux os
- 建立 Apache 或各种服务器
- 建立 MySQL 或执行各种数据库
那为什么不直接用 docker 就好了,有几个原因:
- Kubernetes 已经弃用 Docker
- Red Hat 也使用 podman 取代 Docker
- Docker 不再是完全免费使用,podman 依旧是免费开放原始码
- podman is daemonless
- podman is rootless
podman 不需要先在背景执行服务 (daemonless),不像 Docker 需要一个背景服务来管理所有的容器,一旦服务有问题,所有启动的容器就一起挂了。
podman 不强制用 root 权限执行,相对比 Docker 安全许多。
如何安装 podman
podman 是 Linux 的系统工具,现在已经支持 macOS 和 Windows,在 macOS 安装非常方便,用 Homebrew 一行指令完成安装。
brew install podman
如何使用 podman 架设 WordPress 网站
范例网站架构如下图:
img src: Net7 – Blog – Combining containers into pods with Podman
首先建立一个 pod,然后在同一个 pod 中执行数据库和 WordPress 网站服务器,pod 开放 8081 port,我们就可以使用 http:://localhost:8081 开启本机 WordPress 网站。
#1 使用 podman 建立 pod
pod 的概念和 Kubernetes pod 非常相似,而且 podman 真的可以读取 kubernetes yaml 档案来管理 pod 和容器的执行。
podman 就是 pod manager 的意思。
参考说明:
以下范例为直接建立一个 pod,然后把所有 container 放在同一个 pod 执行,这些 container 可以直接使用 localhost 彼此沟通,不必费心各自 IP。
podman pod create --name wordpress-test -p 8081:80
指令说明:
- podman pod create,建立 pod
- –name,指定名称
- -p,port 对应,外部:内部
注意 pod 建立后就不能改 port mapping。
#2 使用 podman 执行 MariaDB
为什么不是 MySQL,因为呢,MariaDB 有提供 arm64 版本的 image,可以在 M1 MacBook 上执行,MySQL 没有,而且 MariaDB 的所有参数和使用方式,和 MySQL 一模一样,啊就是为了无缝取代 MySQL 👍。
podman run -d --pod=wordpress-test -e MYSQL_ROOT_PASSWORD="geheim" -e MYSQL_DATABASE="wp" -e MYSQL_USER="wordpress" -e MYSQL_PASSWORD="w0rdpr3ss" --name=wordpress-test-db mariadb
指令说明:
- podman run,执行容器
- -d,run as daemon
- –pod,指定在上面建立的 pod 中执行
- -e,设定环境变量,数据库的账号密码等等
- –name,指定容器名称,方便管理
#3 使用 podman 执行 WordPress
podman run -d --pod=wordpress-test -e WORDPRESS_DB_NAME="wp" -e WORDPRESS_DB_USER="wordpress" -e WORDPRESS_DB_PASSWORD="w0rdpr3ss" -e WORDPRESS_DB_HOST="127.0.0.1" --name wordpress-test-web wordpress
指令说明:
- podman run,执行容器
- -d,run as daemon
- –pod,指定在上面建立的 pod 中执行
- -e,设定环境变量,数据库的账号密码等等
- –name,指定容器名称,方便管理
啊不就和上面的 MariaDB 一样,是啊,容器执行都差不多。
本机架设 WordPress 完成,开启 http://localhost:8081,全新的 WordPress 安装开始。
原创文章,作者:开心电脑网,如若转载,请注明出处。