如何使用Docker构建WordPress的开发环境
从之前的Vagerant切换到Docker的备忘录(Mac)。
使用时的实际笔记
启动Docker应用并访问以下URL。
http://本地主机:8080/
docker-compose的各种命令
1. 下载Docker Desktop
Windows 10 专业版/企业版 64 位:Docker CE for Windows
OS X Yosemite 10.10.3 及其后续版本:Docker CE for Mac
下载后,创建一个账户。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
在终端上可以使用docker命令。
改变可使用的资源
如果不做这个,就会陷入无法执行神秘命令的困境,所以在更改设置后,先重新启动Docker Desktop。
下载WordPress和MySQL的镜像。
由于单独下载并协调的方式不奏效,
尝试使用WordPress图像官方页面上提供的docker-compose文件启动。
-
- 在本地创建用于Docker的文件夹,文件名为”docker-compose.yml”,并在该文件中写入下面的代码。
- 执行docker-compose up -d命令,在该文件中,必要的镜像将会被下载。
通过docker堆栈部署或docker-compose
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
开始WordPress
执行”docker-compose up -d”命令后,等待一段时间后,访问http://localhost:8080/,即可显示WordPress的启动界面。
使用docker-compose up -d命令可以启动虚拟环境,使用docker-compose stop命令可以停止环境。
确认过使用docker-compose down先停止和删除容器和网络,然后再启动,后续插件安装的数据库不会被删除。
Docker Compose的各种命令
将WordPress文件夹挂载到本地
如果维持目前的状态,那么它正在参考/var/www/html内安装的WordPress的WordPress容器。
(可以使用docker exec -it [container ID] bash命令来检查容器内服务器的配置)
如果希望从容器中引用在本地文件夹中管理的主题文件,
请在放置了”docker-compose.yml”文件的文件夹中创建一个名为”wordpress”的文件夹。
将上面贴出的 “docker-compose.yml” 文件中的以下部分进行修改:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
volumes:
- wordpress:/var/www/html
只需将以下内容转换成中文即可:
volume:
– ./wordpress:/var/www/html
此更改会将容器的挂载点指定为本地文件夹。
//volumesは下記の記法でマウント先を設定する。
volumes:
- [マウントするローカルファイルのパス]:[コンテナ内で実行されるファイルのパス]
*マウント先のパスは/を含むとパスとして認識されるっぽい。
「wordpress」だけの初期状態だと、そのまま左側のパスを参照するっぽい。
请参考以下链接获取更多信息:
https://docs.docker.com/compose/compose-file/#short-syntax-3
volumes:
# Just specify a path and let the Engine create a volume
- /var/lib/mysql
# Specify an absolute path mapping
- /opt/data:/var/lib/mysql
# Path on the host, relative to the Compose file
- ./cache:/tmp/cache
# User-relative path
- ~/configs:/etc/configs/:ro
# Named volume
- datavolume:/var/lib/mysql
当进行替换并运行docker-compose up -d后,会在空的”wordpress”文件夹中下载具有默认状态的WordPress。由于是双向同步的,因此只需要在本地文件夹进行编辑即可在Docker虚拟环境中实时反映出来。这样就完成了主题和插件的迁移。
数据库迁移
-
- 在开发和生产环境中同时启用”All-in-One WP Migration”插件
-
- 在生产环境中,从”高级设置选项”中设置仅导出数据库。
-
- 将数据导出到文件夹中。
-
- 从开发环境中的All-in-One WP Migration进行导入。(可能需要超过10分钟) ※由于初始设置中无法通过文件大小限制上传文件,因此需要执行此页面的2.更新.htaccess文件来增加文件大小限制。
-
- 当出现”已导入网站”对话框时,点击”保存固定链接结构” ※如果未打开该对话框,则手动移至”设置”内的”固定链接设置”。
-
- 在进入”固定链接设置”页面后,点击”保存更改”(如果出现登录界面,请登录后再次从步骤5的对话框中点击链接以进入”固定链接设置”页面)
- 由于除图片文件外的数据已成功迁移,环境配置已完成!(由于图片比较大且非必需,因此不进行迁移)。
参考使用法的网站
使用备忘录
本地主机分配错误
对于WordPress,无法启动服务wordpress:在端点wordpress_docker_wordpress_1(393592c06d5d5a3ae66698c46502754200d7d3cbc91e35f080c105982126fb3d)上的驱动程序无法进行外部连接:绑定到0.0.0.0:8080失败:端口已被分配。
重新启动Docker Hub后运行docker-compose up -d,但是出现了上述的错误。
原因是先前在另一个文件夹中进行测试时启动了一个不同的WordPress容器,并且它已经在使用http://localhost:8080/。
由于这个容器没有被使用,所以解决方法是先停止并删除该容器。
请参考下面的文章。