> ## Content Index
> Fetch the complete content index at: https://www.richarvin.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Ubuntu搭建docker部署wordpress博客
- URL: https://www.richarvin.com/ubuntu-da-jian-docker-bu-shu-wordpress-bo-ke/
- Published: 2023-07-26T15:23:15.000Z
- Updated: 2026-09-09T03:30:34.000Z
- Author: Richarvin
- Tags: Docker部署

## 前期准备：

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；

[官方文档](https://docs.docker.com/engine/install/ubuntu/?ref=richarvin.com) 

> 如果您的服务器是租赁国内的，必须要走ICP备案，且搭建的网站也必须在公安局进行备案通过后才能对外开放

## 开始安装：

分别运行下面两条命令检查服务器（本文以Ubuntu为例）是否满足官方要求：

```bash
# 查看系统内核
arch
# 查看系统信息
lsb_release -a
```

docker安装方式：使用apt命令远程下载docker Engine镜像安装

## 一、更新索引并设置存储库

```bash
#更新索引库
sudo apt-get update

#允许apt通过HTTPS的的方式安装存储库
sudo apt-get install ca-certificates curl gnupg
```

## 二、添加密钥

```bash
#用超级用户权限,创建一个权限为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
```

## 三、使用以下命令设置存储库

```bash
#使用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

```bash
#再次更新索引包
sudo apt-get update
```

```bash
#安装Docker Engine、containerd和Docker Compose插件的最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

```bash
#安装Docker Compose组件
sudo apt install docker-compose
```

```bash
#设置docker开机自启
systemctl enable docker
```

最后分别用*docker -v*和*docker-compose -v*检查引擎和组件的版本是否能显示出来，如果有相应的版本号，说明已经安装成功。

下面开始用docker搭建两个容器，分别用做NPM（Nginx Proxy Manager）和wordpress的运行环境

## 五、安装 NPM（Nginx Proxy Manager）

```bash
#切换到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中保存即可

```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` 为例）：

```bash
#查看 81 端口是否被占用
lsof -i:81  
```

如果命令执行后什么也没出现，表示端口未被占用，否则请更改为别的端口号（但不能自定义为80和443这两个端口）；

如果出现*\-bash: lsof: command not found*字样，说明你服务器上lsof工具没有安装，请用***apt install lsof***命令安装

确保当前在/root/data/docker\_work space/npm目录下，否则请运行：

```bash
#进入到/root/data/docker_workspace/npm目录
cd /root/data/docker_workspace/npm  

#启动该目录中的NPM项目服务,并在后台运行
docker-compose up -d 
```

打开浏览器，地址栏里以http://服务器ip:81的方式访问，默认用户名和密码如下：

```bash
#用户名
admin@example.com
#密码
changeme
```

## 六、安装wordpress

```bash
#在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数据库

```yml
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

```bash
#启动该目录中的wordpress项目服务,并在后台运行
docker-compose up -d 
```

打开浏览器以上面为例，地址栏中http://服务器ip:8080访问，会弹出安装界面，选中博客的语言界面安装好后，会提示设置诸如 ***站点名称、用户名、密码、邮箱*** 等信息。

最后进入NPM管理界面，将解析好的域名和服务器ip地址进行绑定，申请证书成功后就能用自定义的域名访问了。