利用 Docker Compose 能够快速的构建并部署出 Apache 和 MySQL 服务器,本文将向您展示如何在本地环境中使用 Docker Compose 构建 Apache 和 MySQL 服务器的容器。
Docker Compose
Docker Compose 是一个能够帮助您定义多个 Docker 容器服务的工具,通过它可以更加方便的在本地或远程搭建 Docker 容器服务,而且不需要手动去安装和配备复杂的 Dockerfile。
安装 Docker Compose
在开始之前,我们需要先安装 Docker Compose。根据您的操作系统,我们可以从 Docker 应用商店或者 GitHub 上下载对应的 Docker Compose 版本进行安装。
构建 Apache Web 服务器
我们将会构建一个用于运行 Apache2 Web 服务器的 Docker 镜像。在此之前,我们需要先创建一个 Dockerfile
文件,在这个文件中我们可以定义并构建出我们需要的 Apache 容器。
-- -------------------- ---- ------- ---- ------------ ----- ---------------- ---- ------------------------ --- ------- ------ -- ------- ------- -- - ------- - -- ------- ----- - -- -- --- -------------------- ------ -- --- -------------- ---------------
基本的 Docker 镜像已经构造完成并可以用于构建 Apache Web 服务器容器。在本地环境命令行中执行以下命令,完成 Docker 镜像构建。
$ docker build -t my-apache2 .
在构建完成之后,我们便可以通过下列命令来运行 Apache Web 服务器容器。
$ docker run -d -p 80:80 my-apache2
这样做会把本地的 80
端口映射到容器的 80
端口。浏览器访问 http://localhost
即可查看 Apache2 默认页面。
构建 MySQL 数据库服务器
接下来,我们将会使用 Docker Compose 构建一个 MySQL 数据库服务器。在此之前,需先创建一个 docker-compose.yml
文件,下面就是使用 Docker Compose 构建 MySQL 的配置。
-- -------------------- ---- ------- -------- ----- --------- --- ------ --------- -------- - ---------------------- -------- ------ ------------ -------------------- ------------------ --------------- ----- ------ - ----------- --------- - ------- ----------- ------ --------------------- ------------ --------- -- -------------------- ------------------ -------- ------ ------ - --------- --------- - -------- - ------- -------- -------- --------- --------- --------
该配置文件使用了两个 Docker 镜像:MySQL 5.7 和 phpMyAdmin。MySQL 镜像被映射到本地的 3306 端口,并且开放本地 Docker 网络的 phpMyAdmin 容器容易访问 MySQL 数据库。
要运行该配置,请在命令行中运行以下命令:
$ docker-compose up -d
运行命令后即可在本地 8080 端口查看 MySQL 数据库和 phpMyAdmin 工具。
总结
目前,Docker Compose 是一个在构建并搭建 Docker 容器服务中非常方便、强大的工具。通过本文我们了解了如何利用 Docker Compose 快速构建 Apache Web 服务器和 MySQL 数据库服务器,并让它们能够在本地环境中运行。Docker Compose 并不用太难学习,它可以轻松大大地简化 Docker 容器的构建和部署的流程,使得我们对于开发环境的交付地更加高效快速。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e3325ff6b2d6eab3e995b6