文章目录
- 一、compose安装
- 1.1 基础介绍
- 1.2 软件安装
- 1.3 直接下载
- 二、核心概念
- 2.1 配置文件
- 2.2 服务(service)
- 2.3 工程(project)
- 2.4 使用步骤
- 2.5 Compose常用命令
一、compose安装
1.1 基础介绍
- Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用
- 只需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系,然后只要一个命令,就能同时启动及关闭这些容器
- docker建议每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样又面临了一个问题
- 如果需要同时部署多个服务,就要为每个服务单独写Dockerfile,然后构建镜像、构建容器,每一个都是重复的操作,故docker官方提供了docker-compose多服务部署的工具,可以一次性管理多个镜像和容器
- 如实现一个微服务项目,除了服务容器本身,还有数据库服务容器、缓存服务器容器,注册中心nacos,甚至还包括负载均衡容器等等
- Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)
1.2 软件安装
- 官网下载:https://docs.docker.com/compose/install/
- 下载Docker Compose当前稳定版本
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 对二进制文件应用可执行权限
chmod +x /usr/local/bin/docker-compose
- 测试安装是否完成
[root@server01 bin]# docker-compose -v
Docker version 20.10.12, build e91ed57
- 升级Docker Compose
docker-compose migrate-to-labels
- 卸载Docker Compose
rm /usr/local/bin/docker-compose
1.3 直接下载
- 下载地址:https://github.com/docker/compose/releases
- 可以通过下面的命令获取文件名如下
[root@server01 bin]# echo docker-compose-$(uname -s)-$(uname -m)
docker-compose-Linux-x86_64
- 下载文件,然后拷贝到指定目录重命名即可
二、核心概念
2.1 配置文件
- Docker Componse的配置文件为 docker-compose.yml
- 配置文件的格式,3.0参考文档:https://docs.docker.com/compose/compose-file/compose-file-v3/
2.2 服务(service)
- 一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器
2.3 工程(project)
- 由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义
2.4 使用步骤
- 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
- 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务
- 最后,执行docker-compose up命令来启动并运行整个应用程序,完成一键部署上线
2.5 Compose常用命令
- 常用命令
Compose常用命令
docker-compose -h # 查看帮助
docker-compose up # 启动所有docker-compose服务
docker-compose up -d # 启动所有docker-compose服务并后台运行
docker-compose down # 停止并删除容器、网络、卷、镜像。
docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps # 展示当前docker-compose编排过的运行的所有容器
docker-compose top # 展示当前docker-compose编排过的容器进程
docker-compose logs yml里面的服务id # 查看容器输出日志
docker-compose config # 检查配置
docker-compose config -q # 检查配置,有问题才有输出
docker-compose restart # 重启服务
docker-compose start # 启动服务
docker-compose stop # 停止服务
- 帮助命令
# docker-compose --help
Define and run multi-container applications with Docker.
Usage:
docker-compose [-f <arg>...] [--profile <name>...] [options] [--] [COMMAND] [ARGS...]
docker-compose -h|--help
Options:
-f, --file FILE Specify an alternate compose file
(default: docker-compose.yml)
-p, --project-name NAME Specify an alternate project name
(default: directory name)
--profile NAME Specify a profile to enable
-c, --context NAME Specify a context name
--verbose Show more output
--log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
--ansi (never|always|auto) Control when to print ANSI control characters
--no-ansi Do not print ANSI control characters (DEPRECATED)
-v, --version Print version and exit
-H, --host HOST Daemon socket to connect to
--tls Use TLS; implied by --tlsverify
--tlscacert CA_PATH Trust certs signed only by this CA
--tlscert CLIENT_CERT_PATH Path to TLS certificate file
--tlskey TLS_KEY_PATH Path to TLS key file
--tlsverify Use TLS and verify the remote
--skip-hostname-check Don't check the daemon's hostname against the
name specified in the client certificate
--project-directory PATH Specify an alternate working directory
(default: the path of the Compose file)
--compatibility If set, Compose will attempt to convert keys
in v3 files to their non-Swarm equivalent (DEPRECATED)
--env-file PATH Specify an alternate environment file
Commands:
build Build or rebuild services
config Validate and view the Compose file
create Create services
down Stop and remove resources
events Receive real time events from containers
exec Execute a command in a running container
help Get help on a command
images List images
kill Kill containers
logs View output from containers
pause Pause services
port Print the public port for a port binding
ps List containers
pull Pull service images
push Push service images
restart Restart services
rm Remove stopped containers
run Run a one-off command
scale Set number of containers for a service
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show version information and quit