我尝试构建了[Docker] WordPress+MySQL环境

首先

我知道这可能是一个很早的版本,但这是一份备忘录。
作为学习Docker的一部分,我分别创建了一个WordPress和一个MySQL容器,并尝试通过网络连接它们。
由于Apache和PHP已经包含在WordPress镜像中,因此我没有单独创建它们。

另外,本文的内容是基于这本书的学习成果。

 

运行环境 :
– Windows10
– Docker Desktop for Windows(WSL2)
– 在命令提示符中执行

尽管在上述环境中运行,但执行内容中没有使用Windows特有的功能。

参考资料

 

这是一本关于Docker入门的经典书籍,内容非常易懂,阅读起来也非常流畅。
读不会睡过去!(相较于其他公司)

正如前面所提到的,本文是关于上述书籍第5章实际操作的内容。本文非常简单易懂地从基本入门以及Docker的安装方法等方面开始,一直讲解到Kubernetes。如果您有兴趣,请务必阅读!

操作步骤

手续如下所示。

順番内容1.ネットワークの作成2.MySQLコンテナの作成3.WordPressコンテナの作成4.ブラウザにアクセスして確認5.作成した環境の削除

由于它是任意字符串,因此资源名称请自由设置。

リソースリソース名ネットワークwordpress000net1MySQLコンテナmysql000ex1wordpressコンテナwordpress000ex1

话说得有点长,但我们现在开始实际创作。

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容器特定参数组成。

选项

項目内容入力した値–name作成するコンテナ名mysql000ex1-ditd,i,tオプションの集合。dはバックグラウンドで実行。iはコンテナに操作端末(キーボード)をつなぐ。tは特殊キーを使用可能にする。なし–net使用するネットワークの選択。wordpress000net1-e MYSQL_ROOT_PASSWORDmysqlのルートパスワードmyrootpass-e MYSQL_DATABASE作成するデータベースの実物名wordpress000db-e MYSQL_USERmysqlのユーザー名wordpress000kun-e MYSQL_PASSWORDmysqlのパスワードwkunpass

引数 – 只需要一个选项:传递参数

項目内容入力した値–character-set-server文字コードの変更。この場合はUTF8。utf8mb4–collation-server照合順序の変更。この場合はUTF8。utf8mb4_unicode_ci–default-authentication-plugin認証方式の変更。mysql_native_password

以下两个设置是用于在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é)

項目内容入力した値–name作成するコンテナ名wordpress000ex1-ditd,i,tオプションの集合。dはバックグラウンドで実行。iはコンテナに操作端末(キーボード)をつなぐ。tは特殊キーを使用可能にする。なし–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容器的创建已经完成。

# 起動中のコンテナの一覧表示。
$ 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。太厉害了。

wordpress.png

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真方便。

广告
将在 10 秒后关闭
bannerAds