docker官方网址:https://docs.docker.com/samples/wordpress/
可以使用Docker Compose在用Docker容器构建的隔离环境中轻松运行WordPress。本快速入门指南演示了如何使用撰写来设置和运行WordPress。开始之前,请确保您已经已安装撰写.
你可以给目录起个容易记住的名字。该目录是应用程序映像的上下文。目录应该只包含构建该映像的资源。
该项目目录包含一个docker-compose.yml这个文件本身对于一个好的starter wordpress项目来说是完整的。
可以使用.yml或者.yaml此文件的扩展名都可以。
例如,如命名了目录my_wordpress:
cd my_wordpress/
创建一个docker-compose.yml启动您的WordPress博客和单独的MySQL具有用于数据持久性的卷装载的实例:
# compose版本,向下兼容,我选的最高版本
version: "3.9"
# 定义服务
services:
db:
image: mysql:5.7
# 具名挂载数据卷,后面为对应容器内部地址,生成的本机目录格式:/var/lib/docker/volumes/服务名_卷名
volumes:
- db_data:/var/lib/mysql
# 定义总是重启,docker重启之后会自动启动应用
restart: always
environment:
# 此变量是强制性的,并指定将为MySQL超级用户帐户设置的密码
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
# 具名挂载数据卷,后面为对应容器内部地址,生成的本机目录格式:/var/lib/docker/volumes/服务名_卷名
volumes:
- wordpress_data:/var/www/html
# 暴露端口,外部8000对应容器80
ports:
- "8000:80"
# 定义总是重启,docker重启之后会自动启动应用
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
注意:
docker 数据卷db_data和wordpress_data是WordPress对数据库的更新,以及安装的主题和插件。WordPress多站点仅在端口上工作80和443.
MySQL环境变量可以参考文章:docker安装MySQL并同步数据到本机
执行docker-compose up -d再项目目录中。
这个运行docker-compose up在分离模式下,提取所需的Docker镜像,并启动wordpress和数据库容器,如下例所示。
docker-compose up -d
注意:WordPress Multisite仅在端口上工作80和/或443。如果您收到关于绑定的错误消息0.0.0.0到港口80或者443(取决于您指定的端口),很可能您为WordPress配置的端口已经被另一个服务使用。
此时,WordPress应该在端口上运行8000你可以作为WordPress管理员完成“著名的五分钟安装”。
注意:WordPress站点不能立即在端口上使用8000因为容器仍在初始化中,在第一次加载之前可能需要几分钟。
如果您使用的本地,您可以使用http://localhost作为IP地址,并打开http://localhost:8000在网络浏览器中。
[root@VM-0-3-centos pdx_haokai]# docker volume ls
DRIVER VOLUME NAME
local 3a3d57ad35507c7833513f55243cd9e1656da241b58b68aab48e5a3c6c55a6d9
local docker-compose_db_data
local docker-compose_wordpress_data
[root@VM-0-3-centos pdx_haokai]# docker volume inspect docker-compose_db_data
[
{
"CreatedAt": "2022-01-27T22:12:34+08:00",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "docker-compose",
"com.docker.compose.version": "1.28.5",
"com.docker.compose.volume": "db_data"
},
"Mountpoint": "/var/lib/docker/volumes/docker-compose_db_data/_data",
"Name": "docker-compose_db_data",
"Options": null,
"Scope": "local"
}
]
[root@VM-0-3-centos pdx_haokai]# cd /var/lib/docker/volumes/docker-compose_db_data/_data
[root@VM-0-3-centos _data]# ll
total 188480
-rw-r----- 1 polkitd input 56 Jan 27 22:12 auto.cnf
-rw------- 1 polkitd input 1676 Jan 27 22:12 ca-key.pem
-rw-r--r-- 1 polkitd input 1112 Jan 27 22:12 ca.pem
-rw-r--r-- 1 polkitd input 1112 Jan 27 22:12 client-cert.pem
-rw------- 1 polkitd input 1676 Jan 27 22:12 client-key.pem
-rw-r----- 1 polkitd input 1352 Jan 27 22:12 ib_buffer_pool
-rw-r----- 1 polkitd input 79691776 Jan 27 22:21 ibdata1
-rw-r----- 1 polkitd input 50331648 Jan 27 22:21 ib_logfile0
-rw-r----- 1 polkitd input 50331648 Jan 27 22:12 ib_logfile1
-rw-r----- 1 polkitd input 12582912 Jan 27 22:21 ibtmp1
drwxr-x--- 2 polkitd input 4096 Jan 27 22:12 mysql
drwxr-x--- 2 polkitd input 4096 Jan 27 22:12 performance_schema
-rw------- 1 polkitd input 1680 Jan 27 22:12 private_key.pem
-rw-r--r-- 1 polkitd input 452 Jan 27 22:12 public_key.pem
-rw-r--r-- 1 polkitd input 1112 Jan 27 22:12 server-cert.pem
-rw------- 1 polkitd input 1676 Jan 27 22:12 server-key.pem
drwxr-x--- 2 polkitd input 12288 Jan 27 22:12 sys
drwxr-x--- 2 polkitd input 4096 Jan 27 22:16 wordpress
[root@VM-0-3-centos _data]#
命令docker-compose down移除容器和默认网络,但保留的WordPress数据库。
命令docker-compose down --volumes删除容器、默认网络和WordPress数据库。