在Debian上实现LNMP(Linux, Nginx, MySQL/MariaDB, PHP)的容器化部署,通常使用Docker来创建和管理容器。然而,需要注意的是,从Kubernetes 1.24版本开始,Docker作为容器运行时将被逐步弃用,并计划在Kubernetes 1.24版本中完全移除对Docker的支持。因此,建议使用containerd或CRI-O等替代容器运行时。
以下是一个基本的Debian LNMP容器化部署步骤:
1. 安装Docker或containerd
由于Docker将被弃用,这里以安装containerd为例:
# 添加containerd的GPG密钥 wget https://mirrors.cloud.tencent.com/containerd/gpg/containerd-key.gpg -O /usr/share/keyrings/containerd-archive-keyring.gpg # 安装containerd sudo apt-get update sudo apt-get install -y containerd
2. 配置containerd
创建并配置containerd的配置文件/etc/containerd/config.toml
:
[plugins.cri.containerd] default_runtime = "runc" [plugins.cri.registry.mirrors] [plugins.cri.registry.mirrors.cloudflare] endpoint = "https://registry.docker-cn.com"
3. 启动containerd服务
sudo systemctl start containerd sudo systemctl enable containerd
4. 安装Nginx
使用Docker来拉取并运行Nginx镜像:
docker pull nginx docker run -d --name nginx -p 80:80 nginx
5. 安装MySQL/MariaDB
同样使用Docker来拉取并运行MySQL或MariaDB镜像:
docker pull mysql:8.0 docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 mysql:8.0
6. 安装PHP
可以使用Docker来拉取并运行PHP镜像,或者使用Dockerfile在容器中构建PHP环境。
7. 配置Nginx以使用PHP
编辑Nginx配置文件/etc/nginx/sites-available/default
,添加以下内容:
server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整 } }
8. 重启Nginx服务
sudo systemctl restart nginx
9. 部署PHP应用
将你的PHP应用打包成Docker镜像,并使用Docker run命令来运行容器。
docker build -t my-php-app . docker run -d --name my-running-app -p 8080:8080 my-php-app
以上步骤提供了一个基本的Debian LNMP容器化部署流程。由于Kubernetes的更新,建议在实际部署中考虑使用Kubernetes来管理容器,并利用containerd作为容器运行时。