使用 podman 来搭建 lnmp 开发环境

能看到这里,想必你已经知道什么是 podman 了,以及大致了解和 docker 的区别。
我自己是使用 arch linux 作为开发 OS 的,下面开始介绍下如何搭建:
我这里使用的是 podman 的 pod 来管理多个容器,其中网络是相通的,方便容器各自的访问。
1.安装 podman :
paru -S podman aardvark-dns
安装完成后,根据相应的提示做一些配置
2.拉取镜像,podman 可以直接获取 docker 的镜像,当然你也可以配置:

podman pull docker.io/library/nginx
podman pull docker.io/library/mariadb
podman pull docker.io/bitnami/php-fpm

3.普通用户不能创建端口号低于 1024 的容器映射,不使用 sudo 的话,需要编辑内核参数:
sudo vim /etc/sysctl.d/podman.conf
添加:
net.ipv4.ip_unprivileged_port_start = 80
修改文件权限:
sudo chmod 644 /etc/sysctl.d/podman.conf
使用 sudo sysctl --system 来重新加载配置
4.编辑 pod 配置文件:nginx-php.pod.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: phpx
spec:
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - name: nginx-conf
      mountPath: /etc/nginx/conf.d/
    - name: php-files
      mountPath: /var/www/php/
  - name: php-fpm
    image: php-fpm:latest
    volumeMounts:
    - name: php-files
      mountPath: /var/www/php/
  - name: mariadb
    image: mariadb:latest
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: root
    # - name: MYSQL_DATABASE
      # value: your_database_name
    # - name: MYSQL_USER
      # value: your_mysql_username
    # - name: MYSQL_PASSWORD
      # value: your_mysql_password
  volumes:
  - name: nginx-conf
    hostPath:
      path: /home/tony/documents/pot/phpx/conf.d/
      type: File
  - name: php-files
    hostPath:
      path: /home/tony/documents/pot/phpx/src/
      type: Directory

详细配置你可能需要查询更多资料,需要保证配置文件中的路径真是存在,比如:你将 /home/tony/documents/pot/phpx/nginx/
映射到容器的 /etc/nginx/ 则需要保证你的宿主机器目录中相关的配置文件都需要存在,不然加载配置不通过。上述示例中用到的目录是 conf.d 其中的文件可有可无,可以顺畅进行,网站的配置可以放在其中。还可以加载其他配置,如:php.ini ,示例中我没有添加。
5.创建 pod
podman play kube nginx-php.pod.yaml
6.启动、停止、删除:

podman pod start phpx
podman pod stop phpx
podman pod rm php

7.进入容器:
podman exec -it phpx-mariadb bash
8.查看容器信息(ip 地址):
podman inspect phpx-mariadb | grep IPAddress\":
9.查看容器日志
podman logs phpx-nginx

本文链接:

https://vioulo.com/archives/podman-lnmp-develop.html
1 + 3 =
快来做第一个评论的人吧~