Docker Compose简介
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。
通过Compose,我们使用Yaml文件来配置我们的应用程序的服务。
然后我们使用单个命令创建并启动所有服务。
这是一个简单的图形插图,显示了Docker撰写的作品。
Docker Compose基本上是三步过程:
- 首先,我们需要使用dockerfile定义应用程序环境,因此它可以再次重复使用。
- 其次,我们定义在Docker-compose.yml中构成应用程序的服务,因此它们可以在孤立的环境中运行。
- 最后,我们运行docker-compose up命令并撰写将启动并运行整个应用程序。
开始使用Docker Compose
可以通过两种方式安装Docker Compose。
我们可以在以下链接中找到"安装Docker Compose"部分下的安装说明。
- 如何在Ubuntu安装Docker
- 如何在CentOS中安装Docker
安装后,请使用命令查看Docker Compose的版本:
# docker-compose -version
或者,
# docker-compose -v
或者,
# docker-compose --version
要获得帮助,只需运行:
# docker-compose -help
此命令将列出Docker Compose可以执行的命令。
现在让我们拍摄一个简单的Docker撰写文件作为一个例子。
这是我的撰写文件的内容。
上面的Docker Compose文件是一个裸露的最小文件,以了解Compose文件中的基本内容。
我们可以使用命令检查文件的有效性:
# docker-compose config
如果我们在Docker Compose文件中给出了错误的版本,那么它将给我们一个错误消息。
现在让我们使用命令运行compose文件:
# docker-compose up -d
它将使用单个命令启动所有服务。
要列出由Compose文件创建的运行容器,请运行:
# docker-compose ps
我们可以随时使用以下命令延迟应用程序:
# docker-compose down
我们还可以将不同的端口分配给nginx,例如8181.
为此,只需在Compose文件中定义端口,如下图所示。
现在nginx暴露于端口8181.让我们启动容器并检查nginx是否在8181端口运行。
打开浏览器并验证它是否在8181端口上运行。
如果要缩放服务,则可以使用命令执行命令:
# docker-compose up -d --scale database=3
要显示运行服务,请运行:
# docker-compose top
停下来,开始。
立即重新启动整个服务,命令将是:
# docker-compose stop
# docker-compose start
# docker-compose restart
我们可以使用命令查看服务的日志:
# docker-compose logs
在Docker-Compose中的网络
Docker默认为应用程序设置一个网络。
每个容器加入默认网络和容器都能够在该默认网络上进行通信。
但是,如果我们不想要默认网络,则可以使用撰写创建新网络。
出于本教程的目的,我使用以下三个文件:
- dockerfile.
- docker-compose.yml.
- server.py.
这是dockerfile的内容:
docker-compose.yml的内容:
server.py的内容:
现在使用命令构建图像:
# docker-compose build
构建完成后,我们将看到以下输出:
正如我们可以看到图像已成功构建。
我们可以使用命令验证它:
# docker images
在上面的输出中看到,创建名为Image1的Docker图像。
现在运行compose文件:
# docker-compose up -d
检查是否创建了新网络或者使用命令创建:
# docker network ls
从上面的屏幕截图,我们可以确认已创建名为DC_Network_my-network的新网络。
让我们检查是否使用"docker ps"命令或者不检查容器是否正在运行:
# docker ps
是的,容器正在运行!
最后使用curl命令运行应用程序代码文件(server.py):
# curl localhost:15001
或者,
# curl 10.26.35.244:15001