我尝试构建了[Docker] WordPress+MySQL环境
首先
我知道这可能是一个很早的版本,但这是一份备忘录。
作为学习Docker的一部分,我分别创建了一个WordPress和一个MySQL容器,并尝试通过网络连接它们。
由于Apache和PHP已经包含在WordPress镜像中,因此我没有单独创建它们。
另外,本文的内容是基于这本书的学习成果。
运行环境 :
– Windows10
– Docker Desktop for Windows(WSL2)
– 在命令提示符中执行
尽管在上述环境中运行,但执行内容中没有使用Windows特有的功能。
参考资料
这是一本关于Docker入门的经典书籍,内容非常易懂,阅读起来也非常流畅。
读不会睡过去!(相较于其他公司)
正如前面所提到的,本文是关于上述书籍第5章实际操作的内容。本文非常简单易懂地从基本入门以及Docker的安装方法等方面开始,一直讲解到Kubernetes。如果您有兴趣,请务必阅读!
操作步骤
手续如下所示。
由于它是任意字符串,因此资源名称请自由设置。
话说得有点长,但我们现在开始实际创作。
1. 创建网络
只是创建容器是不足够的,容器之间无法进行交互。
因此,我们需要创建一个虚拟网络来连接WordPress容器和MySQL容器。
我们将使用network系命令来创建网络。
因此,我们将创建一个名为wordpress000net1的网络。
# wordpress000net1という名前のネットワークを作成。
$ docker network create wordpress000net1
# 上手く作成できたのか、ネットワーク一覧の表示で確認。
$ docker network ls
# こんな感じの結果が返ってくる(上の3つはデフォルトネットワーク)。
NETWORK ID NAME DRIVER
7fca4eb8c647 bridge bridge
9f904ee27bf5 none null
cf03ee007fb4 host host
23b2bf8c8a01 wordpress000net1 bridge
网络创建已经完成了。
创建MySQL容器
从Docker Hub的镜像创建一个mysql容器。
输入以下相当长的run命令。
docker run --name mysql000ex1 -dit --net=wordpress000net1 -e MYSQL_ROOT_PASSWORD=myrootpass -e MYSQL_DATABASE=wordpress000db -e MYSQL_USER=wordpress000kun -e MYSQL_PASSWORD=wkunpass mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
由9个选项和3个mysql容器特定参数组成。
选项
引数 – 只需要一个选项:传递参数
以下两个设置是用于在mysql中使用日语的配置。
对于“照合顺序是什么?”这个问题,您可以参考此文章。
【SQL Server】照合順序是什么意思?
【MySQL】照合顺序是什么?
只剩下一个参数需要将Wordpress连接到MySQL的认证方式更改为旧版本。Wordpress不支持MySQL8.0的认证方式,即caching_sha2_password。因此,将其更改为MySQL5.7的默认认证插件,即mysql_native_password。
我已经完成了mysql容器的创建。我将确认它是否正确创建。
# 起動中のコンテナの一覧表示。
$ docker ps
# 結果
CONTAINER ID IMAGE COMMAND
d020c741fba2 mysql "docker-entrypoint.s…"
3. 创建WordPress容器
与MySQL类似,我们可以从Dockerhub的镜像创建WordPress容器。Apache和PHP也包含在此镜像中,但我们不会对它们进行任何调整。
用一个相当长的运行命令创建。
docker run --name wordpress000ex1 -dit --net=wordpress000net1 -p 8085:80 -e WORDPRESS_DB_HOST=mysql000ex1 -e WORDPRESS_DB_NAME=wordpress000db -e WORDPRESS_DB_USER=wordpress000kun -e WORDPRESS_DB_PASSWORD=wkunpass wordpress
有10个选项可供选择。需要注意的是,参数没有被使用。
以“-e”为开头的选项需要输入与MySQL相关的值。
这是刚才创建的MySQL容器的含义。
选择 zé)
通过这一步,WordPress容器的创建已经完成。
# 起動中のコンテナの一覧表示。
$ docker ps
# 結果
CONTAINER ID IMAGE COMMAND
52e8cecffa13 wordpress "docker-entrypoint.s…"
d020c741fba2 mysql "docker-entrypoint.s…"
我已经完成了所有要制作的东西。
我将实际确认它是否能运作。
5. 打开浏览器进行确认
在Chrome等浏览器中访问http://localhost:8085/。
因为是端口号80,所以使用http。要小心不要不小心使用https。
如果成功,就会显示以下WordPress的初始画面。
如果登录,就可以使用WordPress。太厉害了。
6. 删除创建的环境
如果说”不需要容器”,那么就立即删除创建好的环境。
删除也有顺序要求。
容器必须先停止,然后才能删除。
如果存在由相关镜像创建的容器,则无法删除镜像。
如果存在关联的容器,则无法删除网络。
# コンテナの停止
$ docker stop wordpress000ex1
$ docker stop mysql000ex1
# コンテナの削除
$ docker rm wordpress000ex1
$ docker rm mysql000ex1
# イメージの削除
$ docker image rm wordpress
$ docker image rm mysql
# ネットワークの削除
$ docker network rm wordpress000net1
我创建的环境已经完全消失了!这篇文章的内容到这里就结束了。辛苦你了。
最后
真的现在才发现,Docker真方便。