当前位置:   article > 正文

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

docker 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
  • 1

在这里插入图片描述
如果要安装其他版本的 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

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

cd /home
touch docker-compose.yml
  • 1
  • 2

然后将以下内容添加到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
  • 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

注意:

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 表示启动容器后进入后台运行
  • 1
  • 2

如果遇到以下报错:

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

那就好好检查第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
  • 1
  • 2
  • 3

然后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
  • 1
  • 2

然后可以看到当前目录下生成了这两个镜像的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

  • 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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/1003254
推荐阅读
相关标签
  

闽ICP备14008679号