[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

配置docker容器的LAMP环境~入门版~

你好。
我是Mandai,负责Wild 开发团队。

docker容器最初并不是完全运行在一个docker容器中,而是
多个docker容器协同工作来运行单个服务。

首先,我想创建一个 Web 系统,其中一台服务器中的两个 docker 容器可以协同工作。

本文是 Docker 入门系列的第 4 部分,将帮助您了解 Docker 的基础知识。
如果您想阅读过去的 Docker 介绍系列,请点击下面的链接。

 

这次的目标

这次,我们将继续使用 docker 构建原始 LAMP 配置的目标。
为了解释什么是原始 LAMP 配置,我想到的是:

  • 一个运行apache+PHP的docker容器
  • 一个运行 MySQL 的 docker 容器
  • 连接单独的容器并像在本地安装一样运行。
  • 从虚拟机外部看,它看起来就像一个普通的 Web 系统。

我正在想象这样的情况。

以此

  • 您可以学习如何启动多个容器(虽然不是那么好)
  • 了解如何连接容器
  • 这突然让我想到将容器放在单独的服务器上可能是可以的。

我想知道这样的事情会很高兴。

我认为尝试使用 WordPress 安装它并使其正常工作是一个好主意。
这次,我们也将在 VirtualBox 中继续进行 Ubuntu 上的工作。

 

准备必要的docker镜像

这次需要的docker镜像是

  • MySQL docker 镜像
  • Apache + PHP docker 镜像

有两个。
前者使用官方的 MySQL docker 镜像,后者使用WordPress 的官方 docker 镜像

现在,从 docker hub 拉取 MySQL docker 镜像并启动 docker 容器。

vagrant@vagrant:~$ docker run --name mymysql -e MYSQL_ROOT_PASSWORD=[mysql 密码] -d mysql:latest 无法在本地最新找到镜像 'mysql:latest': 从库/mysql 拉取 86e6c3163927: 拉取完成 68f4b3625ea4: 拉取完成04f7e78a2c8a:拉取完成 1bade56c3b6b:拉取完成 dd6387e14c18:拉取完成 ca30c0626c9b:拉取完成 0dc5e226a795:拉取完成 6c164b0f04cb:拉取完成 5c74d058f7b5:拉取完成 0fd3b6e12567:拉取完成e8126a9d061e:拉取完成 d17cffff8039:拉取完成 1924f4186d05:拉取完成 14961e5db73a:拉取完成 摘要: sha256:16de02081c408c41361126aaa718f91693688d39a216a74ac8dab841db050228状态:下载了mysql的新映像:最新12cb7271b424e8043d7bb36484061f49331a87be2 5bcd 415e4a9a481a6b33c53

让我们检查一下 docker 容器是否启动。

vagrant@vagrant:~$ docker ps 容器 ID 图像命令创建状态端口名称 12cb7271b424 mysql:latest "/entrypoint.sh mysql" 3 秒前 Up 3 秒 3306/tcp mymysql

开始一切顺利。
接下来,拉取包含 wordpress 的 docker 镜像并启动 docker 容器。

vagrant@vagrant:~$ docker run --name mywordpress --link mymysql:mysql -p 8080:80 -d wordpress 无法在本地最新找到图像 'wordpress:latest': 从库/wordpress 拉取 9482852a6953: 拉取完成 81de90fd7f09: 拉取完成 57ae0639bf23:拉出完成 c4f7968ac19e:拉出完成 d06608e0df69:拉出完成 7ab219b6a3ea:拉出完成 049be7b00a71:拉出完成 1ac57811ebb0:拉出完成 5f7f35d35a61:拉出完成 e7ff06ab86e9:拉出完成 50cbe 3cba4bd:拉取完成 ef9f3544f906:拉取完成 0544870563ee:拉取完成 6b7e8b5d0ef6:拉取完成4fb33229649f:拉取完成 d0cabc0feb31:拉取完成 6fb545ed9179:拉取完成 9e9f602b9253:拉取完成 8d3522c82327:拉取完成 26c9007116c8:拉取完成 19faf318b397:拉取完成 04c297e0e874:拉取完成 0b9e66c139d 3:拉取完成 52cddd72d1ca:拉取完成 19d7bfb3a2a7:拉取完成 15031c83aa88:拉取完成 9c3238040649 :拉取完成 492d7fea8944:拉取完成 676505bb515e:拉取完成 eea959e50c85:拉取完成 1029747e7634:拉取完成 155de5677313:拉取完成 摘要:sha256:bfd7e102741d73cce4ec58b2d937586c670f3 1df 1c80aeaf4d5c525eb3c6ac06 状态:已下载 WordPress 的较新映像:最新 8606df07f39f2a22dbdefd916b42c1747ca1df86f4a012620862c039d110887f

完成后,检查 docker 容器是否正在运行。

vagrant@vagrant:~$ docker ps 容器 ID 图像命令创建状态端口名称 8606df07f39f wordpress "/entrypoint.sh apach" 3 秒前 3 秒前 0.0.0.0:8080->80/tcp mywordpress 12cb7271b424 mysql:latest "/entrypoint.sh apach" sh mysql" 2 分钟前 Up 2 分钟 3306/tcp mymysql

必要项目的安装现已完成。
wordpress docker 镜像不包含 MySQL,但正如我在 docker hub 上阅读的解释

  • 如果通过添加选项“--link mymysql:mysql”来安装它,它似乎是使用名为 mymysql 的 docker 容器设置为 MySQL 容器。
  • WORDPRESS_DB_HOST 的默认值未指定,因为它使用链接的 mysql 容器。
  • WORDPRESS_DB_USER 未指定,因为 mymysql 容器暂时将以 root 用户身份访问(建议更改)。
  • 如果不指定 WORDPRESS_DB_PASSWORD ,将从 mysql 容器中获取启动连接的 mysql 容器时设置的 MYSQL_ROOT_PASSWORD 变量,因此无需再次指定(推荐)。
  • WORDPRESS_DB_NAME 的默认值为 wordpress。如果您更喜欢其他数据库名称,请注明。

如果你控制了这个区域,似乎你可以跨容器连接到数据库,没有任何问题。

 

从浏览器设置 WordPress

让我们从浏览器中再次查看 WordPress 安装屏幕。
由于我在虚拟机上的 Ubuntu 上运行 docker,因此我在 Vagrantfile 中编写了以下内容,将主机 PC 上的端口 18080 端口转发到虚拟机上的端口 8080。

config.vm.network“转发端口”,访客:8080,主机:18080

VM的8080端口转发到wordpress docker容器的80端口,因此18080连接到docker容器的80端口。

当我访问 http://localhost:18080/ 时,显示了一个设置屏幕。

wordpress_installation_01

选择日语作为语言,然后按继续。

wordpress_installation_02
输入登录所需的信息

wordpress_installation_03

完全的。哦,这很容易。

wordpress_installation_04

接下来,将出现一个登录表单,因此请输入您之前输入的用户名和密码。

wordpress_installation_05

我到达了仪表板。

很快就结束了,但是如果您使用 Rails 等正确创建了一个 Web 服务,如果您通过在 Dockerfile 中包含 git clone 和 rake 命令来创建 docker 映像,则可以使用相同的模式来部署它,这太棒了。

此外,您可以通过简单地指定IP地址来更改AWS RDS对数据库的使用,并且很容易安排诸如放置nginx docker容器之类的事情。
这完全取决于您如何链接 docker 容器。
就是这样。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
1,583
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。