如何使用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。

c6f75540-cd96-4bbf-937d-b277fd5f7d25-960x1418r.png
ef3eaeca-d883-4822-b039-9b0a12eff4bf.png

下载WordPress和MySQL的镜像。

由于单独下载并协调的方式不奏效,
尝试使用WordPress图像官方页面上提供的docker-compose文件启动。

    1. 在本地创建用于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虚拟环境中实时反映出来。这样就完成了主题和插件的迁移。

数据库迁移

    1. 在开发和生产环境中同时启用”All-in-One WP Migration”插件

 

    1. 在生产环境中,从”高级设置选项”中设置仅导出数据库。

 

    1. 将数据导出到文件夹中。

 

    1. 从开发环境中的All-in-One WP Migration进行导入。(可能需要超过10分钟) ※由于初始设置中无法通过文件大小限制上传文件,因此需要执行此页面的2.更新.htaccess文件来增加文件大小限制。

 

    1. 当出现”已导入网站”对话框时,点击”保存固定链接结构” ※如果未打开该对话框,则手动移至”设置”内的”固定链接设置”。

 

    1. 在进入”固定链接设置”页面后,点击”保存更改”(如果出现登录界面,请登录后再次从步骤5的对话框中点击链接以进入”固定链接设置”页面)

 

    由于除图片文件外的数据已成功迁移,环境配置已完成!(由于图片比较大且非必需,因此不进行迁移)。

参考使用法的网站

使用备忘录

本地主机分配错误

对于WordPress,无法启动服务wordpress:在端点wordpress_docker_wordpress_1(393592c06d5d5a3ae66698c46502754200d7d3cbc91e35f080c105982126fb3d)上的驱动程序无法进行外部连接:绑定到0.0.0.0:8080失败:端口已被分配。

重新启动Docker Hub后运行docker-compose up -d,但是出现了上述的错误。
原因是先前在另一个文件夹中进行测试时启动了一个不同的WordPress容器,并且它已经在使用http://localhost:8080/。
由于这个容器没有被使用,所以解决方法是先停止并删除该容器。

请参考下面的文章。

广告
将在 10 秒后关闭
bannerAds