3.3 网络综合实践

系列 - 网络与存储配置
目录
摘要
本实验将使用 Docker 容器技术部署一个完整的 WordPress 博客系统,包括 WordPress 应用容器和 MySQL 数据库容器,并了解容器间的网络通信。
实验过程
1.创建桥接网络
首先,我们需要创建一个自定义的桥接网络,使 WordPress 容器和 MySQL 容器能够相互通信。
docker network create mysite-network
验证网络是否创建成功:
docker network ls
执行成功后,应该能看到类似下图的输出,其中包含我们刚刚创建的 mysite-network 网络:

技巧
创建自定义网络的好处是容器可以通过容器名称相互访问,而不需要知道对方的 IP 地址,大大简化了容器间的通信配置。
2.运行 MySQL 容器

接下来,运行 MySQL 数据库容器,它将作为 WordPress 网站的数据存储。按以下要求自写命令:
- 后台运行
- 容器名:blog-mysql
- 网络:连接到 mysite-network 网桥
- 环境变量:
- MYSQL_ROOT_PASSWORD=sqlpassword
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=wordpress
- 镜像:mysql:8.3.0
查看容器运行状态,如果一切正常,应该能看到类似下图的输出,显示 MySQL 容器正在运行:

警告
在实际生产环境中,应使用更复杂的密码和适当的数据持久化配置。本实验为了简化,使用了简单密码且没有配置数据持久化。
3.运行 WordPress 容器
现在运行 WordPress 应用容器,根据以下要求自写命令:
- 后台运行
- 容器名:blog-wordpress
- 网络:连接到 mysite-network 网桥
- 端口映射:外部端口80映射到内部端口80
- 镜像:wordpress
4.安装 WordPress
现在,可以通过浏览器访问 WordPress 安装界面:
1.打开浏览器,输入你的服务器 IP 地址
2.看到以下界面后,将语言切换为"简体中文":


3.输入和数据库相关的信息,其中【数据库主机】可以填写 MySQL 容器的容器名(在同一网络中容器可以通过名称互相访问):

技巧
由于我们使用了自定义的桥接网络,WordPress 容器可以通过容器名
wordpress-mysql 直接访问 MySQL 容器,这是 Docker 自定义网络的一个重要特性。4.填写完成后点击提交并进行安装:

5.输入和站点相关的信息,可以根据个人喜好自由填写:

6.安装完成后,使用设置的用户名和密码进行登录,进入网站后台:

5.在网站中发布一篇文章
安装插件和皮肤后,发布一篇文章
实验后续:测试数据持久性
在容器世界中,一个重要概念是容器本身是临时的,而数据则需要持久化。我们通过以下步骤来验证这一点:
引用
当我们想要升级容器的镜像版本时,会执行下列操作:
- 停止并删除容器(docker stop、docker rm)
- 更新镜像(docker pull)
- 以新镜像运行容器(docker run)
首先,删除现有的两个容器:
docker stop wordpress
docker stop wordpress-mysql
docker rm wordpress
docker rm wordpress-mysql
然后,使用较新版本的 MySQL 镜像重新创建 MySQL 容器:
docker run -d \
--name wordpress-mysql \
--network mysite-network \
-e MYSQL_ROOT_PASSWORD=sqlpassword \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=wordpress \
mysql:8.4.0
接着,重新创建 WordPress 容器:
docker run \
-d --name wordpress \
--network mysite-network \
-p 80:80 \
wordpress
问题
再次打开浏览器访问网站,刚才建立的网站、发布的文章还存在吗?为什么?
数据持久化
由于我们没有为 MySQL 容器配置数据卷(volume),删除容器后其中的数据也一并被删除了。在实际生产环境中,我们需要使用数据卷来持久化存储数据,确保容器删除后数据仍然保留。
附件
学习过程中,可以使用以下资源来丰富你的 WordPress 网站:
技巧
要安装这些资源,可以在 WordPress 后台的"插件"或"外观"菜单中,选择"上传插件/主题"功能,然后上传并激活这些文件。







