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:端口号网址来进行重新设置数据库

 

 

posted @ 2021-11-05 08:55  奈何碧落黄泉  阅读(39)  评论(0)    收藏  举报