Ubuntu搭建docker部署wordpress博客
前期准备:
1、服务器一台,最低配置1核1G(推荐1核2G);
2、已经解析的域名一个;
3、系统要求:
需要以下Ubuntu64位版本之一:
Ubuntu Lunar 23.04
Ubuntu Kinetic 22.10
Ubuntu Jammy 22.04(LTS)
Ubuntu Focal 20.04(LTS)
Docker Engine for Ubuntu兼容x86_64(或amd64),armhf,arm64, S390X和PPC64LE(PPC64EL)体系结构。
4、需要安装Docker Engine、Docker-compose、Nginx Proxy Manager;
官方文档如果您的服务器是租赁国内的,必须要走ICP备案,且搭建的网站也必须在公安局进行备案通过后才能对外开放
开始安装:
分别运行下面两条命令检查服务器(本文以Ubuntu为例)是否满足官方要求:
# 查看系统内核
arch
# 查看系统信息
lsb_release -a
docker安装方式:使用apt命令远程下载docker Engine镜像安装
一、更新索引并设置存储库
#更新索引库
sudo apt-get update
#允许apt通过HTTPS的的方式安装存储库
sudo apt-get install ca-certificates curl gnupg
二、添加密钥
#用超级用户权限,创建一个权限为755的/etc/apt/keyrings目录
sudo install -m 0755 -d /etc/apt/keyrings
#从Docker下载它的GPG公钥,并存放到系统的密钥托管目录 /etc/apt/keyrings/ 下
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#使用超级用户权限,给/etc/apt/keyrings/docker.gpg这个文件添加所有用户的读权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg
三、使用以下命令设置存储库
#使用root权限,在/etc/apt/sources.list.d/docker.list文件中写入一个Docker的APT源定义。以便系统的源列表中添加了Docker的软件仓库。
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
四、安装Docker
#再次更新索引包
sudo apt-get update
#安装Docker Engine、containerd和Docker Compose插件的最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#安装Docker Compose组件
sudo apt install docker-compose
#设置docker开机自启
systemctl enable docker
最后分别用docker -v和docker-compose -v检查引擎和组件的版本是否能显示出来,如果有相应的版本号,说明已经安装成功。
下面开始用docker搭建两个容器,分别用做NPM(Nginx Proxy Manager)和wordpress的运行环境
五、安装 NPM(Nginx Proxy Manager)
#切换到root用户
sudo -i
#在root目录下递归的创建一些文件夹,如果父目录不存在则先创建出来
mkdir -p /root/data/docker_workspace/npm
#进入到npm目录下
cd /root/data/docker_workspace/npm
#创建一个docker-compose.yml配置文件
touch docker-compose.yml
#编辑该文件
vim docker-compose.yml
将下面代码复制到docker-compose.yml中保存即可
version: '3.7'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 冒号左边可以改成自己服务器未被占用的端口
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 冒号左边可以改成自己服务器未被占用的端口
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
查看端口是否被占用(以上面 81
为例):
#查看 81 端口是否被占用
lsof -i:81
如果命令执行后什么也没出现,表示端口未被占用,否则请更改为别的端口号(但不能自定义为80和443这两个端口);
如果出现-bash: lsof: command not found字样,说明你服务器上lsof工具没有安装,请用apt install lsof命令安装
确保当前在/root/data/docker_work space/npm目录下,否则请运行:
#进入到/root/data/docker_workspace/npm目录
cd /root/data/docker_workspace/npm
#启动该目录中的NPM项目服务,并在后台运行
docker-compose up -d
打开浏览器,地址栏里以http://服务器ip:81的方式访问,默认用户名和密码如下:
#用户名
admin@example.com
#密码
changeme
六、安装wordpress
#在root目录下递归的创建一些文件夹,如果父目录不存在则先创建出来
mkdir -p /root/data/docker_workspace/wordpress
#进入到wordpress目录下
cd /root/data/docker_workspace/wordpress
#创建一个docker-compose.yml配置文件
touch docker-compose.yml
#编辑该文件
vim docker-compose.yml
将下面的代码复制到docker-compose.yml中保存即可,该配置文件是在wordpress目录中安装博客程序本体和所依赖的mysql数据库
version: '3.7'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80 #8080可以更改为自己想要的端口号
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress_pd
volumes:
- /root/data/docker_workspace/wordpress/data:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress_pd
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- /root/data/docker_workspace/wordpress/db:/var/lib/mysql
#volumes:
# wordpress:
# db:
七、启动运行wordpress
#启动该目录中的wordpress项目服务,并在后台运行
docker-compose up -d
打开浏览器以上面为例,地址栏中http://服务器ip:8080访问,会弹出安装界面,选中博客的语言界面安装好后,会提示设置诸如 站点名称、用户名、密码、邮箱 等信息。
最后进入NPM管理界面,将解析好的域名和服务器ip地址进行绑定,申请证书成功后就能用自定义的域名访问了。