在Debian上实现LNMP(Linux, Nginx, MySQL/MariaDB, PHP)的容器化部署,通常使用Docker来创建和管理容器。然而,需要注意的是,从Kubernetes 1.24版本开始,Docker作为容器运行时将被逐步弃用,并计划在Kubernetes 1.24版本中完全移除对Docker的支持。因此,建议使用containerd或CRI-O等替代容器运行时。
以下是一个基本的Debian LNMP容器化部署步骤:
由于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
创建并配置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"
sudo systemctl start containerd
sudo systemctl enable containerd
使用Docker来拉取并运行Nginx镜像:
docker pull nginx
docker run -d --name nginx -p 80:80 nginx
同样使用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
可以使用Docker来拉取并运行PHP镜像,或者使用Dockerfile在容器中构建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版本调整
}
}
sudo systemctl restart nginx
将你的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作为容器运行时。