使用docker-compose快速构建wordpress
今天讲解一下超级简单方式搭建wordpress。使用 docker-compose 快速安装博客,顺带将nginx、mysql一起集成进去。
为什么使用docker-compose来构建
docker-composer 是 docker 的一种编排服务。就想本文的例子,你有一个wordpress镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml
文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up
命令就ok了。
安装 docker
centos 安装 docker
更新源地址
众所周知的原因,官方源国内访问太慢,需要替换源地址,下面两个源地址任选一个即可
1 2 3 4
| sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
1 2 3 4
| sudo yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
|
更新yum中的docker-ce为最新版本
安装docker
1 2 3
| sudo yum -y install docker-ce sudo systemctl start docker docker version
|
安装docker-compose
1 2
| sudo yum install docker-compose sudo docker-compose version
|
创建配置文件
创建 nginx.conf
这是配合wordpress:php7.4-fpm-alpine镜像的nginx配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| server { listen 80; server_name www.domain.com; # 配置wordpress目录为根目录 root /var/www/html; index index.php; # 配置日志目录 access_log /var/log/nginx/wordpress-access.log; error_log /var/log/nginx/wordpress-error.log; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # 配置访问转发到wordpress镜像9000接口 fastcgi_pass wordpress:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
|
创建 docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| version: '3.7' services: nginx: image: nginx:latest restart: always ports: - '80:80' volumes: - ./nginx:/etc/nginx/conf.d - ./nginx/logs:/var/log/nginx - ./html:/var/www/html links: - wordpress db: image: mysql:5.7 restart: always ports: - "3308:3306" environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress volumes: - ./db:/var/lib/mysql wordpress: image: wordpress:php7.4-fpm restart: always depends_on: - db environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: - ./html:/var/www/html - ./config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
|
运行wordpress
启动服务
1
| docker-compose -f docker-compose.yml up -d
|
访问地址:
浏览器输入IP:8080
或www.domain.com
直接访问
停止服务
1
| docker-compose -f docker-compose.yml down
|
其他命令
1 2 3 4
| docker-compose ps docker-compose stop docker-compose stop nginx docker-compose rm nginx
|