Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。
它可以使用一个YAML文件来配置应用程序的服务,然后,只需使用一个命令,就可以从你的配置中创建并启动所有服务。
在yaml文件中,可以定义服务、网络和卷。服务定义了应用程序的哪些部分应该在哪些容器中运行,网络定义了如何将容器连接在一起,而卷则用于持久化和共享数据。
nginx举例:
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
# 静态资源文件
- ./html:/usr/share/nginx/html
# 配置文件
- ./nginx.conf:/etc/nginx/nginx.conf
为每个服务编写一个Dockerfile,以定义如何构建容器的镜像。
在这个文件中,你会指定哪些服务需要运行、它们之间如何相互关联,以及它们使用哪些网络和卷。
这个命令会根据docker-compose.yml文件启动和运行你的整个应用程序。
构建docker-compose.yml文件定义的所有的服务镜像,如果你的 docker-compose.yml 文件中定义了多个服务,并且每个服务都有自己的 Dockerfile。
docker-compose build
那么当你运行 docker-compose build 命令时,Docker Compose 会查看 docker-compose.yml 文件,找到所有带有 build 配置的服务,并执行所需的步骤来构建这些服务的 Docker 镜像。
services:
myservice:
build:
context: ./path/to/build/context
dockerfile: Dockerfile-alternate
args:
build_arg: value
构建与 web 服务相关的镜像
docker-compose build web
docker-compose -f docker-compose.yml -p dongodng up -d
docker-compose config
docker-compose create
docker-compose down
docker-compose events
docker-compose exec 容器名称 服务的命令
docker-compose logs -ft mysql
docker-compose ps [options] [SERVICE...]
docker-compose restart/start/stop [服务名称]
docker-compose run [服务名称]
docker-compose images [服务名称]
强制停止 Docker Compose 管理的一个或多个运行中的服务容器。
docker-compose kill [options] [SERVICE...]
运行以下命令来立即停止所有由当前 docker-compose.yml 管理的服务的容器。
docker-compose kill
如果你只想停止一个特定的服务(比如 web)
docker-compose kill web
将删除所有由当前 docker-compose.yml 文件定义的、已停止的服务容器。运行此命令时,通常会提示你确认是否删除每个容器。
docker-compose rm [options] [SERVICE...]
要强制删除而不进行确认,可以使用 -f 选项。
docker-compose rm -f
如果想先停止然后移除特定服务的容器(例如 web),可以结合使用 -s 和 -f 选项。
docker-compose stop web && docker-compose rm -f web
#先进行停掉服务
docker-compose stop web
#然后删除容器
docker-compose rm web
#再次启动该服务
docker-compose up -d web