目标:使用Docker、Docker Hub、PHP、Nginx、Mysql、Redis、Swoole搭建WordPress博客网站。
1.准备工作
在DokcerHub准备Docker镜像,镜像是为了Docker创建容器
# 在DockerHub拉取Nginx镜像
docker pull nginx
# 在DockerHub拉取PHP7.4-fpm镜像
docker pull php:7.4-fpm
# 在DockerHub拉取Mysql镜像
docker pull mysql
2.简单介绍
--name 自定义容器名称
-p 将容器内部使用的网络端口映射到宿主机上(宿主机端口:容器端口)
-d 让容器后台运行
-v 将容器内部目录和宿主机目录相互映射,(宿主机目录:容器目录)
docker-php-ext-install 安装php扩展
3.创建Mysql容器
mysql:8.0.29是镜像名称
PS:Password改成自己的Mysql密码
# 构建Mysql容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Password -d -v /work/mysql:/var/lib/mysql mysql:8.0.29
4.创建PHP容器
docker run --name php7.4 -p 9000:9000 -d \
-v /project:/project \
php:7.4-fpm
PHP安装自带的扩展
# 安装mysqli扩展
docker-php-ext-install mysqli
# 安装pdo_mysql扩展
docker-php-ext-install pdo_mysql
PHP容器安装Swoole扩展
# 下载Swoole扩展
wget https://pecl.php.net/get/swoole-4.8.12.tgz
# 解压压缩包
tar -xzvf swoole-4.8.12.tgz
# 将解压出来的安装包copy到php容器,/usr/src/php/ext/是docker-php扩展包目录
docker cp swoole-4.8.12 php7.4:/usr/src/php/ext/swoole
# 进入PHP容器
docker exec -it php7.4 /bin/bash
# 执行安装
docker-php-ext-install swoole
添加自定义的php.ini
# 新建ini文件
vim uploads.ini
# 在ini文件输入需要更新的内容
file_uploads = On
memory_limit = 500M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600
# 复制ini进入docker-php自动读取的文件夹
docker cp uploads.ini php7.4:/usr/local/etc/php/conf.d/uploads.ini
5.创建Nginx容器
docker run --name nginx -p 80:80 -p 443:443 -d \
-v /project:/project \
-v /work/nginx/conf:/etc/nginx/conf.d \
-v /work/nginx/logs:/var/log/nginx \
-v /work/nginx/cert:/etc/nginx/cert \
--link php7.4:php \
nginx
// 使用acme.sh
docker run --name nginx -p 80:80 -p 443:443 -d \
-v /project:/project \
-v /work/nginx/conf:/etc/nginx/conf.d \
-v /work/nginx/logs:/var/log/nginx \
-v /work/nginx/cert:/etc/nginx/cert \
-v /work/nginx/acme-challenge:/etc/nginx/acme-challenge \
--link php7.4:php \
nginx
6.创建Redis容器
简单启动
docker run --name redis -p 6379:6379 -d redis --requirepass "Password"
redis.conf启动
根据版本,在官方下载一个redis.conf文件(链接)
配置redis.conf
- bind 127.0.0.1 -::1 # 注释掉这部分,这是限制redis只能本地访问
- protected-mode no # 默认yes,开启保护模式,限制为本地访问
- daemonize no # 默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败
- appendonly yes # redis持久化(可选)
// redis.conf启动
docker run --name redis -p 6379:6379 -d \
-v /你的路径/redis.conf:/usr/local/redis/redis.conf redis \
redis-server /usr/local/redis/redis.conf \
--requirepass "Password" \
--appendonly yes \
Comments 2 条评论
博主 匿名
请问怎么安装Oracle扩展