📅  最后修改于: 2023-12-03 15:14:46.524000             🧑  作者: Mango
Docker Compose 是一款用于定义和管理多容器 Docker 应用程序的工具。它使用一个 YAML 文件来配置应用程序的服务、网络和卷,并使用一条命令来启动、停止和管理整个应用程序。
这篇文章将向程序员介绍 Docker Compose 命令的常见用法,包括使用 Docker Compose 构建、启动和管理 Docker 容器的基本操作。所有的示例代码都是在 Shell/Bash 环境下执行的。
在开始使用 Docker Compose 之前,我们需要在本地系统上安装 Docker Compose。Docker Compose 可以通过以下命令来安装:
$ sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
安装完成后,可以使用以下命令来验证 Docker Compose 是否成功安装:
$ docker-compose --version
docker-compose version 1.28.5, build c4eb3a1f
Docker Compose 使用一个 YAML 格式的文件来定义应用程序的服务、网络和卷。下面是一个示例的 Docker Compose 文件:
version: "3.9"
services:
web:
build: ./web
ports:
- "8000:8000"
environment:
- DEBUG=True
db:
image: postgres:13
environment:
- POSTGRES_USER=myuser
- POSTGRES_PASSWORD=mypassword
- POSTGRES_DB=mydb
上面的文件定义了两个服务:web
和 db
。web
服务是一个使用 Dockerfile 构建的应用程序,暴露 8000
端口,并设置了一个环境变量 DEBUG=True
。db
服务使用一个现成的 PostgreSQL 镜像,并设置了一些环境变量来配置数据库。
一旦你编写了 Docker Compose 文件,你就可以使用 docker-compose up
命令来构建和启动容器。这个命令将会自动查找当前目录下的 docker-compose.yml
文件,并根据其中的配置启动容器。以下是命令的使用示例:
$ docker-compose up -d
上面的命令会在后台构建和启动所有定义的服务。如果服务需要构建,则会使用 Dockerfile 来构建镜像。使用 -d
参数可以将容器以守护进程的方式运行,即在后台运行。
要查看当前正在运行的容器以及他们的状态,可以使用 docker-compose ps
命令。这个命令会列出所有由 Docker Compose 管理的容器,并显示它们的状态、名称和相关信息。以下是该命令的使用示例:
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------
myapp_db_1 docker- Up 5432/tcp
entrypoint.sh
myapp_web_1 python Up 0.0.0.0:8000->8000/tcp
manage.py runserver
上面的输出显示了两个正在运行的容器:myapp_web_1
和 myapp_db_1
。它们的状态为 "Up",并显示了容器的命令和相关端口的映射。
要停止 Docker Compose 启动的容器,可以使用 docker-compose down
命令。这个命令会停止并删除所有正在运行的容器,同时清理所有的网络和卷。以下是命令的使用示例:
$ docker-compose down
上面的命令会停止并删除所有正在运行的容器,并清理相关的资源。
除了上面介绍的基本操作外,Docker Compose 还提供了许多其他有用的命令和功能,如构建单个服务、扩展服务、查看日志等。你可以在 Docker Compose 的官方文档中找到更多关于这些命令的详细信息。
希望本文能够帮助你了解 Docker Compose 命令的基本用法和工作原理。使用 Docker Compose 可以简化多容器应用程序的管理,提高开发和部署的效率。请记得根据自己的需求和实际情况进行适当调整和配置。