Docker-Compose篇(1)-软件安装&核心概念

341 阅读4分钟

一、compose安装

1.1 基础介绍

  1. Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用
  2. 只需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系,然后只要一个命令,就能同时启动及关闭这些容器
  3. docker建议每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样又面临了一个问题
    • 如果需要同时部署多个服务,就要为每个服务单独写Dockerfile,然后构建镜像、构建容器,每一个都是重复的操作,故docker官方提供了docker-compose多服务部署的工具,可以一次性管理多个镜像和容器
    • 如实现一个微服务项目,除了服务容器本身,还有数据库服务容器、缓存服务器容器,注册中心nacos,甚至还包括负载均衡容器等等
  4. Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)

1.2 软件安装

  1. 官网下载:docs.docker.com/compose/ins…
  2. 下载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
  1. 对二进制文件应用可执行权限
chmod +x /usr/local/bin/docker-compose
  1. 测试安装是否完成
[root@server01 bin]# docker-compose -v
Docker version 20.10.12, build e91ed57

  1. 升级Docker Compose
docker-compose migrate-to-labels
  1. 卸载Docker Compose
rm /usr/local/bin/docker-compose

1.3 直接下载

  1. 下载地址:github.com/docker/comp…
  2. 可以通过下面的命令获取文件名如下
[root@server01 bin]# echo docker-compose-$(uname -s)-$(uname -m)
docker-compose-Linux-x86_64
  1. 下载文件,然后拷贝到指定目录重命名即可

二、核心概念

2.1 配置文件

  1. Docker Componse的配置文件为 docker-compose.yml
  2. 配置文件的格式,3.0参考文档:docs.docker.com/compose/com…

2.2 服务(service)

  1. 一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器

2.3 工程(project)

  1. 由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义

2.4 使用步骤

  1. 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件
  2. 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务
  3. 最后,执行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