dockerswarm 搭建lnmp
时间: 2023-09-02 18:07:46 浏览: 220
好的,以下是基于 Docker Swarm 搭建 LNMP 环境的步骤:
1. 安装 Docker 和 Docker Swarm
2. 创建一个 Docker Swarm 集群
3. 创建一个 overlay 网络,用于容器之间的通信
```bash
docker network create --driver overlay my-network
```
4. 创建一个 MySQL 服务
```bash
docker service create \
--name mysql \
--network my-network \
-e MYSQL_ROOT_PASSWORD=<password> \
-e MYSQL_DATABASE=<database> \
mysql:5.7
```
其中,`<password>` 是 MySQL 的 root 密码,`<database>` 是要创建的数据库名称。
5. 创建一个 Nginx 服务
```bash
docker service create \
--name nginx \
--network my-network \
-p 80:80 \
-p 443:443 \
-v /path/to/nginx.conf:/etc/nginx/nginx.conf \
--mount type=bind,source=/path/to/html,target=/usr/share/nginx/html \
nginx:latest
```
其中,`/path/to/nginx.conf` 是自定义的 Nginx 配置文件路径,`/path/to/html` 是自定义的静态文件路径。
6. 创建一个 PHP-FPM 服务
```bash
docker service create \
--name php-fpm \
--network my-network \
--mount type=bind,source=/path/to/php,target=/var/www/html \
php:7-fpm
```
其中,`/path/to/php` 是自定义的 PHP 代码路径。
7. 创建一个 Redis 服务
```bash
docker service create \
--name redis \
--network my-network \
redis:latest
```
8. 创建一个运行 PHP 代码的服务
```bash
docker service create \
--name php \
--network my-network \
--mount type=bind,source=/path/to/php,target=/var/www/html \
--mount type=bind,source=/path/to/nginx.conf,target=/etc/nginx/nginx.conf \
--mount type=bind,source=/path/to/logs,target=/var/log/nginx \
--mount type=bind,source=/path/to/sessions,target=/var/lib/php/sessions \
--mount type=bind,source=/path/to/config,target=/usr/local/etc/php/conf.d \
php:7-fpm
```
其中,`/path/to/logs` 是自定义的 Nginx 日志路径,`/path/to/sessions` 是自定义的 PHP 会话路径,`/path/to/config` 是自定义的 PHP 配置路径。
9. 验证 LNMP 环境是否正常工作
在浏览器中输入服务器的 IP 地址,应该能够看到 Nginx 的欢迎页面。在 PHP 代码中连接 MySQL 和 Redis 数据库,应该能够正常工作。
以上是基于 Docker Swarm 搭建 LNMP 环境的步骤,希望对你有帮助!
阅读全文