使用Docker定义和运行多容器应用程序。
# 查看帮助信息
docker-compose --help
# 查看版本信息
docker-compose version
Compose文件是定义服务、网络和卷的YAML文件。默认路径是./docker-compose.yml
。
使用Docker Compose来编排多个服务,但也可以仅“编排”一个服务,如下展示了仅启动Nginx服务的docker-compose.yml文件:
version: "3.9"
services:
myNginx:
image: nginx
ports:
- 8080:80
注:docker-compose
相关命令如果不在拥有Compose文件的目录下执行时会报错,除非使用-f Compose文件
来明确指定Compose文件。
# 仅拉取镜像,并不创建容器
# 拉取所有服务的镜像
docker-compose pull
# 拉取指定服务名的镜像
docker-compose pull myNginx
# 校验并查看Compose文件
docker-compose config
# 仅校验Compose文件不打印输出
docker-compose config -q
# 为服务构建、(重新)创建、启动和附加到容器
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
# 常用参数如下:
# -d 在后台运行容器
docker-compose up -d
# --force-recreate 即使容器的配置和映像没有更改,也要重新创建容器。
docker-compose up --force-recreate
# --no-recreate 如果容器已经存在,请不要重新创建它们。
docker-compose up --no-recreate
# --no-start 创建服务后不要启动它们。原命令docker-compose create已废弃改为使用:
docker-compose up --no-start
# --scale 指定某服务启动几个容器,将覆盖Compose文件中的scale设置
docker-compose up -d --scale myNginx=2
# 查看允许中的容器
docker-compose ps
# 查看所有容器
docker-compose ps -a
# 启动服务的现有容器
docker-compose start [SERVICE...]
# 启动当前Compose文件下的所有容器:
docker-compose start
# 启动指定的服务myNginx:
docker-compose start myNginx
# 停止运行容器而不删除它们
docker-compose stop [options] [SERVICE...]
# 例如,关闭当前Compose下的所有运行中的容器:
docker-compose stop
# 关闭指定的服务myNginx:
docker-compose stop myNginx
# 重新启动所有已停止以及正在运行的服务
docker-compose restart [options] [SERVICE...]
# 注意:如果对docker-compose.yml配置进行了更改,运行此命令后并不会反映这些更改。
# 重新启动当前Compose文件下的所有容器:
docker-compose restart
# 重新启动指定的服务myNginx:
docker-compose restart myNginx
# 对服务运行一次性命令。
docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] SERVICE [COMMAND] [ARGS...]
# 常用的选项有:
# -d 在后台运行容器
# --name NAME 指定容器名
# -e KEY=VAL 设置环境变量
# --rm 运行后移除容器
# -p 将容器的端口发布到主机,即绑定端口
# -v 绑定装载卷
# 在执行中的容器内执行命令
docker-compose exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]
# 例如,执行ls
docker-compose exec myNginx ls
# 等同于对该镜像执行:
docker exec fcfb5b4add13 ls
# 列出所创建容器使用的镜像
docker-compose images
# 显示服务的日志输出
docker-compose logs
# 暂停正在运行的服务容器
docker-compose pause
# 取消暂停已暂停服务的容器
docker-compose unpause
# 打印端口绑定的公共端口
docker-compose port [options] SERVICE PRIVATE_PORT
# 例如:
docker-compose port myNginx 80
0.0.0.0:8080
# 删除停止的服务容器
docker-compose rm [options] [SERVICE...]
# 例如,删除当前Compose文件下的所有已停止的容器
docker-compose rm
# 删除当前Compose文件下指定的已停止的容器
docker-compose rm myNginx
# 显示正在运行的进程
docker-compose top
# 停止容器并删除由docker-compose up创建的容器、网络、卷和镜像。
docker-compose down
参考资料