linux下使用docker搭建wordpress
镜像(image)
一个特殊的文件系统(使用 Union FS 技术),镜像不包含任何动态数据,其内容在构建之后也不会被改变。
容器(container)
容器就是镜像的运行时,容器可以被创建、启动、停止、删除、暂停等。
tips: 容器里面的存储会随着容器删除而丢失,根据 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。
仓库(repository)
仓库是我们拉货(镜像)的位置,官方的仓库是 Docker Hub
来自 <https://blog.csdn.net/xiaoping0915/article/details/79515309>
Docker
1.检查Linux内核版本
因为Docker要求CentOS的内核版本高于3.10 首先验证CentOS内核的版本
$ uname -r

2、查看yum
$ rpm –qa|grep yum

对yum进行更新
$ yum update -y
3.安装Docker
$ yum install docker -y
如果报错,则修改命令为
$ yum install --allowerasing docker -y
4、安装完成后进行查看
$ yum list | grep docker
--验证安装(查看版本号)
$ docker -v

4.配置Docker国内镜像,提高下载速度
$ vi /etc/docker/daemon.json
在这个json文件中加入:
{
"registry-mirrors": ["https://6xacs6l2.mirror.aliyuncs.com"]
}
vi编辑器操作:按a进入编辑模式,修改完成后按esc退出编辑模式,输入:wq保存退出。
5.启动docker服务
$ systemctl start docker.service
Network
1、创建桥接网络
$ docker network create my-network

2、创建后检查
$ docker network inspect my-network

1、拉取MySQL的docker
$ docker pull mysql

2、查看本地镜像
$ docker images

3、运行MySQL容器
$ docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Ybsx@2020 --network my-network mysql
docker run 命令用于去运行一个镜像,会产出一个容器。
-d 后台运行容器,并返回容器ID;
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name 为容器指定一个名称;
-p 指定端口映射,格式为:主机(宿主)端口:容器端口
-e username=“ritchie” 设置环境变量;
MYSQL_ROOT_PASSWORD=“password” mysql容器的root用户的密码设置
--network 将其连接到用户自定义网络

4、检查是否安装成功
$ docker ps

5、本机登录访问mysql服务
$ docker exec -it mysql /bin/bash
因为是用docker安装mysql,所以需要先进入到容器内部,再输入以下代码
$ mysql -h localhost -u root -p
-h 表示当前服务地址 -u 表示登录名 -p表示登录提供密码

6、查看数据库
mysql> show databases;

7、新增数据库
mysql> create database wordpress default charset utf8;

8、退出数据库
mysql> exit;

WordPress
1、拉取wordpress镜像
$ docker pull wordpress

2、查看本地镜像
$ docker images

3、运行wordpress容器
$ docker run --name wordpress -p 8080:80 -d wordpress
(该命令不需要再执行后续的加入子网命令)docker run --name wordpress -p 8080:80 --network my-network -d wordpress
"-e WORDPRESS_DB_HOST": 链接的docker的MySQL的IP地址和端口,一般设置成mysql表示用默认的设置。
需要注意的是如果使用宿主机的数据库,不能使用 localhost 或 127.0.0.1 ,因为这样会指向容器自身。
"-e WORDPRESS_DB_USER": 以什么用户使用MySQL,默认是root
"-e WORDPRESS_DB_PASSWORD" :设置MySQL的登陆用户密码,要和之前的"MYSQL_ROOT_PASSWORD“要相同。
"-e WORDPRESS_DB_NAME": 数据库的表名,默认为”wordpress",需要在给定的MySQL服务器上已经存在; 它不会由wordpress容器创建。

4、检查是否安装成功
$ docker ps

5、加入子网
$ docker network connect my-network wordpress

PS:操作错误时如何删除已经生成的docker
1、停止docker服务
$ docker stop wordpress

2、删除docker
$ docker rm wordpress

安装Wordpress
1、访问WordPress
打开链接 http://你的IP:你设置的端口号
PS:如果报错“无法访问此网站”,可能是端口没有开放,需要加入到安全组中。
2、配置数据库
3、填写网站信息
4、完成安装
Linux下搭建wordpress会遇到的一些问题
修改上传文件大小限制
参考网址https://www.wbolt.com/how-to-increase-the-max-upload-size-in-wp.html
具体操作采用新增php.ini文件
如果不生效,则修改.htaccess文件
具体操作为
1、进入网站根目录
方法一:
①执行 docker inspect [dockerId]

②找到Source的值

③执行 cd [path]

方法二:
①先进入容器内部
执行 docker exec -it [dockerId] /bin/bash

②在容器中安装vim
首先执行 apt-get update
这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
③其次执行 apt-get install vim
2、编辑文件
建议在主机上编辑好后再复制粘贴过来
执行 vim .htaccess
复制
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
粘贴到# END WordPress命令下方
按esc退出编辑模式,再输入:wq保存退出即可。
重启docker报错
参考网址https://github.com/containers/podman/issues/3759
解决方法:手动删除/var/lib/cni/networks目录下的两个文件夹my-network和podman,再重新restart即可。
Linux下迁移wordpress的流程
1、打包原数据库和网站的整站源码,压缩_data文件夹,格式为tar.gz
2、在新的服务器上搭建docker和wordpress环境,建立mysql数据库
3、上传tar.gz源码压缩包到新的服务器上,并使用命令解压缩:tar -zxvf 路径/data.tar.gz
4、迁移数据库数据到新的数据库(建议使用All-in-One WP Migration插件,原网站导出时勾选除最后两个选项)
5、删除新网站源码下的wp-config.php文件,再打开ip:端口号网址来进行重新设置数据库

浙公网安备 33010602011771号