Compose
概述
1、Compose 是一个用于定义和运行多容器 Docker 应用程序的工具
2、使用 Compose,可以使用一个 YAML 文件来配置应用程序的服务,然后,只需一条命令,就可以创建并启动配置中的所有服务
3、Compose 适用于所有环境:生产、暂存、开发、测试,以及 CI 工作流程,它也有管理应用程序的整个生命周期的命令
(1)启动、停止、重建服务
(2)查看运行中的服务的状态
(3)流畅运行服务的日志输出
(4)在一个服务上运行一次性的命令
4、Compose 主要功能
(1)在一台主机上拥有多个隔离的环境
(2)在创建容器时保留卷数据
(3)只重新创建已经改变的容器
(4)支持变量和在环境之间移动一个组合
安装
1、方案一:安装 Docker 桌面
(1)获取 Docker Compose 的最简单和推荐的方法是安装 Docker Desktop
(2)Docker Desktop 包括 Docker Compose、Docker Engine、Docker CLI,它们是 Compose 的先决条件
(3)如果已经安装 Docker Desktop,可以从 Docker 菜单中选择 About Docker Desktop 来检查拥有的 Compose 版本
2、方案二:安装 Compose 插件
(1)如果已经安装 Docker Engine 和 Docker CLI,则可以通过以下方式之一从命令行安装 Compose 插件
(2)使用 Docker 的存储库
(3)手动下载和安装
(4)注意:这仅在 Linux 上可用
3、不再支持独立安装 Compose
卸载
1、卸载 Docker Compose 取决于用来安装 Docker Compose 的方法
2、卸载 Docker Desktop
3、卸载 Docker Compose CLI 插件
(1)Ubuntu、Debian
sudo apt-get remove docker-compose-plugin
(2)基于 RPM 的发行版
sudo yum remove docker-compose-plugin
(3)如果使用 curl 安装 Compose CLI 插件
rm $DOCKER_CONFIG/cli-plugins/docker-compose
(4)如果已经为所有用户安装 Compose
rm /usr/local/lib/docker/cli-plugins/docker-compose
(5)如果在使用上述任何一种方法时得到一个 Permission denied 的错误,说明没有允许删除 docker-compose 的权限,要强制删除,请在上述任何一种方法前加上 sudo,然后再次运行
4、检查 Compose CLI 插件的位置,要检查 Compose 的安装位置
docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}'
核心
1、docker-compose.yaml
2、服务(Service):单独应用容器示例,如:微服务、MySQL 容器、Nginx 容器
3、工程(Project):一组关联的应用容器,所组成的一个完整业务单元,在 docker-compose.yaml 中定义
使用步骤
1、使用 Dockerfile 定义各个微服务应用,并构建出对应镜像
2、使用 docker-compose.yaml 定义一个完整业务单元,安排整体应用中的各个容器服务
3、运行 docker compose up 启动,并运行程序,完成一键部署上线
docker compose 命令
1、用法
docker compose [-f <arg>...] [--profile <name>...] [options] [COMMAND] [ARGS...]
docker compose -h|--help
2、options
(1)-f、--file FILE:指定一个备用的合成文件,默认值:docker-compose.yml
(2)-p、--project-name NAME:指定一个备用的项目名称,默认值:目录名
(3)--profile NAME:指定一个要启用的配置文件
(4)--verbose:显示更多输出
(5)--log-level LEVEL:已弃用,且不生效,设置日志级别(DEBUG,INFO,WARNING,ERROR,CRITICAL)
(6)--no-ansi:不打印 ANSI 控制字符
(7)--v、--version:打印版本并退出
(8)--H、--host HOST:要连接的 Daemon socket
(9)--tls:使用 TLS,隐含 --tlsverify
(10)--tlscacert CA_PATH:只相信由这个 CA 签署的证书
(11)--tlscert CLIENT_CERT_PATH:TLS 证书文件的路径
(12)--tlskey TLS_KEY_PATH:TLS 密钥文件的路径
(13)--tlsverify:使用 TLS 并验证远程
(14)--skip-hostname-check:不检查守护进程的主机名与客户证书中指定的名称
(15)--project-directory PATH:指定一个备用的工作目录,默认值:docker-compose.yml 所在路径
(16)--compatibility:如果设置了,Compose 将尝试把 v3 文件中的部署密钥转换为非 Swift 文件,文件中的密钥转换为非 Swarm 的等价物
3、COMMAND
(1)build:构建或重建服务
(2)bundle:从 Compose 文件生成一个 Docker bundle
(3)config:验证并查看 Compose 文件
(4)create:创建服务
(5)down:停止并删除容器、网络、镜像、卷
(6)events:接收来自容器的实时事件
(7)exec:在运行中的容器中执行一个命令
(8)help:获取命令的帮助
(9)images:列出镜像
(10)kill:杀死容器
(11)logs:查看来自容器的输出
(12)pause:暂停服务
(13)port:打印一个端口绑定的公共端口
(14)ps:列出容器
(15)pull:拉出服务镜像
(16)push:推送服务镜像
(17)restart:重新启动服务
(18)rm:删除停止的容器
(19)run:运行一个一次性的命令
(20)scale:设置一个服务的容器数量
(21)start:启动服务
(22)stop:停止服务
(23)top:显示运行中的进程
(24)unpause:取消服务的停顿
(25)up:创建并启动容器
(26)version:显示 Docker Compose 版本信息
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战