在Linux的docker中安装wordpress实现个人博客以及wordpress备份和迁移

通过wordpress我们可以很方便的搭建自己的博客系统,但是在备份和迁移方便有着诸多不便,尤其是数据库的迁移,因此想着可以将WordPress安装在docker中,方便了数据的迁移。

我的设备环境:
腾讯云服务器(centos 7.8)

一、安装docker

docker的安装过程参考我另一篇博客:
https://blog.csdn.net/AnChenliang_1002/article/details/125397467
该链接的文章中第2.2节记录了docker的安装过程。

二、安装compose并创建compose脚本

2.1 什么是compose

使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,Docker Compose。
Dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目)
例如一个web服务再加上后端的数据库服务容器等

compose脚本可以实现自动化安装docker

更加详细的介绍可以参考以下文章:
Docker之compose介绍
Docker-Compose 简介

2.2 安装compose

Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。

运行以下命令以下载 Docker Compose 的当前稳定版本:

 sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

在这里插入图片描述
如果要安装其他版本的 Compose,将指令中的1.24.1换成你要使用的版本号即可。

#将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
#创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#测试是否安装成功:
docker-compose --version

结果如下图所示,说明compose安装成功了
在这里插入图片描述

2.3 通过compose安装WordPress容器和MySQL数据库容器

2.3.1 创建compose脚本(自动化安装docker)

cd /home
touch docker-compose.yml

然后将以下内容添加到docker-compose.yml中

version: '3.3'
services:
  db:
     image: mysql:5.5
     container_name: "wordpress_mysql"
     ports:
       - "3307:3306"
     volumes:
       - $PWD/db:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD:数据库root密码
       MYSQL_DATABASE: wordpress
       MYSQL_USER: yangfeiwu
       MYSQL_PASSWORD: 数据库yangfeiwu用户密码
  wordpress:
     depends_on:
       - db
     image: wordpress:latest
     container_name: "wordpress"
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: yangfeiwu
       WORDPRESS_DB_PASSWORD: 数据库yangfeiwu用户密码
       WORDPRESS_DB_NAME: wordpress
       WORDPRESS_WPLANG: zh-CN
     volumes:
       - $PWD/wp-content:/var/www/html/wp-content

注意:

1、此脚本中指定了一个MySQL容器和WordPress容器,
2、其中MySQL容器使用的镜像是mysql:5.5,创建出的容器名称是wordpress_mysql,并将主机的3307端口映射到MySQL容器内的3306端口;
3、WordPress容器使用的镜像是wordpress:latest,创建出的容器名称是wordpress,并将主机的80端口映射到WordPress容器内的80端口,并且需要使用容器内的数据库3306端口;
4、上面我把mysql数据库端口映射到了3307,主机的3306先保留吧。
5、MySQL中和WordPress中需要填写名称和密码的地方,请自己设置并牢记。

我自己设置的密码记录在了https://blog.csdn.net/AnChenliang_1002/article/details/112613680,以防自己忘记。

2.3.2 执行compose脚本生成MySQL容器和WordPress容器

进入docker-compose.yml所在目录,执行以下脚本

cd /home
docker-compose up -d # -d 表示启动容器后进入后台运行

如果遇到以下报错:

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
  in "./docker-compose.yml", line 13, column 22

那就好好检查第13行的第22个字符的格式,yml对格式要求很严格,我这边的问题是:和密码之间必须要有空格,而我当时多删除了一个空格的;其实用vim打开该文件可以看出来,如下图所示是正确的情况,冒号是红的,然后后面是个空格,在后面是用户名,是绿的
在这里插入图片描述
当然这里要附上错误的情况,如下图所示,则是中间少了个空格
在这里插入图片描述
最终脚本执行成功后的界面:
在这里插入图片描述
此时使用docker Images可以看到刚刚生成的两个镜像,使用docker ps可以看到正在运行的两个容器;如下图所示:
在这里插入图片描述
此时我们的运行在docker里的WordPress就搭建成功了。可以通过你服务器的ip地址(例如:http://192.168.1.200/)访问你的博客了。

2.3.3 博客系统初始化

经过上面的步骤,我们就可以通过我们服务器的ip(或者域名)来登录我们的博客系统了,输入ip(或域名)就进入了博客的初始化界面,如下图所示:
在这里插入图片描述
我这边选择了中文,一步步的往下操作即可,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
登录后即可
在这里插入图片描述

然后我们可以发布一篇文章,用以验证备份和迁移后的效果。

三、WordPress的备份和迁移

3.1 备份容器

首先我们使用docker commit指令将运行中的wordpress容器和mysql容器打包成镜像:

docker commit -a "anchenliang" -m "creat new wordpress img" c1a03af8bc57 worepress:worepress_bak_0325

docker commit -a "anchenliang" -m "creat new wordpress_mysql img" 6545fc7d6c54  worepress_mysql:worepress_mysql_bak_0325

然后docker images可以看到新生成了两个镜像;如下图
在这里插入图片描述
然后使用docker save指令将刚刚生成的镜像保存为tar文件:

docker save -o worepress_mysql_bak_0325.tar worepress_mysql:worepress_mysql_bak_0325
docker save -o worepress_bak_0325.tar worepress:worepress_bak_0325

然后可以看到当前目录下生成了这两个镜像的tar文件,如下图所示:
在这里插入图片描述
此时就可以将两个tar文件拷贝出来,转移到另一个服务器上;因为我只有一个服务器,因此我只能将原来的所有镜像都删掉,然后上传刚刚两个tar文件,在同一个服务器上模拟迁移过程。

先将运行的容器停止:
在这里插入图片描述
然后将容器删除,
在这里插入图片描述
再将所有的镜像删除:

在这里插入图片描述
此时服务器设备中没有了任何镜像,也没有任何容器;

3.2 迁移容器

将上一步生成的两个tar包放到新服务器的/home下,
docker load指令将镜像加载到系统中
在这里插入图片描述
此时可以看到系统中有了我们生成的两个镜像:
在这里插入图片描述

创建一个docker-compose.yml文件将以下内容添加到docker-compose.yml中

version: '3.3'
services:
  db:
     image: worepress_mysql:worepress_mysql_bak_0325
     container_name: "wordpress_mysql"
     ports:
       - "3307:3306"
     volumes:
       - $PWD/db:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: hik12345
       MYSQL_DATABASE: wordpress
       MYSQL_USER: anchenliang
       MYSQL_PASSWORD: hik12345
  wordpress:
     depends_on:
       - db
     image: worepress:worepress_bak_0325
     container_name: "wordpress"
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: anchenliang
       WORDPRESS_DB_PASSWORD: hik12345
       WORDPRESS_DB_NAME: wordpress
       WORDPRESS_WPLANG: zh-CN
     volumes:
       - $PWD/wp-content:/var/www/html/wp-content

然后执行以下命令创建容器:

docker-compose up -d # -d 表示启动容器后进入后台运行

可以看到生成了对应的容器,
在这里插入图片描述
此时访问域名或ip,发现我们的博客系统也能正常访问,而且迁移之前发的博客也都还在

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker安装WordPress可以简化部署过程并提供可移植性。下面是一个基本的步骤: 1. 首先,确保已经安装DockerDocker Compose。可以在官方网站上找到适合您操作系统的安装指南。 2. 创建一个新的目录来保存WordPress的配置文件和数据。例如,可以在主目录下创建一个名为"wordpress"的文件夹。 3. 在这个新目录,创建一个名为`docker-compose.yml`的文件,并将以下内容添加到文件: ``` version: '3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: db_data: ``` 这个`docker-compose.yml`文件定义了两个服务:一个是MySQL数据库(用于存储WordPress数据),另一个是WordPress本身。注意,这里使用的是MySQL 5.7和最新的WordPress镜像。 4. 在终端,切换到`docker-compose.yml`所在的目录,并运行以下命令启动WordPress: ``` docker-compose up -d ``` 这会下载所需的镜像并启动WordPress容器。添加`-d`参数可以在后台运行容器。 5. 当容器启动后,可以通过访问`http://localhost:8000`来访问WordPress。根据向导进行安装,设置管理员用户名和密码等信息。 这些步骤将在Docker快速搭建一个WordPress环境。您可以根据需要进行自定义配置,例如更改端口号或添加其他服务。详细的配置选项可以参考DockerDocker Compose的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘凉~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值