Docker Compose介绍

Docker Compose是一个工具,用于定义和运行多容器应用程序的工具;
Docker Compose通过yml文件定义多容器的docker应用;
Docker Compose通过一条命令根据yml文件的定义去创建或管理多容器;
Docker Compose 是用来做Docker 的多容器控制,是一个用来把 Docker 自动化的东西。有了 Docker Compose 你可以把所有繁复的 Docker 操作全都一条命令,自动化的完成。

 

Docker Compose可以做到以下几点:

  1. 提供工具用于定义和运行多个docker容器应用;
  2. 使用yaml文件来配置应用服务(docker-compse.yml);
  3. 可以通过一个简单的命令docker-compse up可以按照依赖关系启动所有服务;
  4. 可以通过一个简单的命令docker-compose down停止所有服务;
  5. 当一个服务需要的时候,可以很简单地通过--scale进行扩容;

Docker Compose有以下特征: 

更高的可移植性,Docker Compose仅需一个docker-compse up可以完成按照依赖关系启动所有服务,然后使用docker-compose down轻松将其拆解。帮助我们更轻松地部署复杂的应用程序;
单个主机上的多个隔离环境,Compose可以使用项目名称将环境彼此隔离,这带可以在一台计算机上运行同一环境的多个副本,它可以防止不同的项目和服务相互干扰; 

Docker Compose安装

Docker Compose安装的最新的版本Docker Compose version v2.12.2,对于Mac和Windows安装好Docker以后,就已经安装好Docker Compose,不需要手动安装,这里的安装方式是基于Linux的Cnetos的,大家也可以参考官方网站去安装。

由于虚拟机之前已经安装Docker,本次只需要安装compose-plugin即可;虚拟机版本如下:

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

升级所有包的同时也升级软件和系统内核:

[root@localhost ~]# sudo yum update
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.lzu.edu.cn
 * extras: ftp.ksu.edu.tw
 * updates: mirror.lzu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.8-3.1.el7 将被 升级
---> 软件包 containerd.io.x86_64.0.1.6.9-3.1.el7 将被 更新
---> 软件包 copy-jdk-configs.noarch.0.3.3-10.el7_5 将被 升级
---> 软件包 copy-jdk-configs.noarch.0.3.3-11.el7_9 将被 更新
---> 软件包 docker-ce.x86_64.3.20.10.18-3.el7 将被 升级
---> 软件包 docker-ce.x86_64.3.20.10.21-3.el7 将被 更新
---> 软件包 docker-ce-cli.x86_64.1.20.10.18-3.el7 将被 升级
---> 软件包 docker-ce-cli.x86_64.1.20.10.21-3.el7 将被 更新
---> 软件包 docker-ce-rootless-extras.x86_64.0.20.10.18-3.el7 将被 升级
---> 软件包 docker-ce-rootless-extras.x86_64.0.20.10.21-3.el7 将被 更新
---> 软件包 docker-scan-plugin.x86_64.0.0.17.0-3.el7 将被 升级
---> 软件包 docker-scan-plugin.x86_64.0.0.21.0-3.el7 将被 更新
---> 软件包 java-1.8.0-openjdk.x86_64.1.1.8.0.345.b01-1.el7_9 将被 升级
---> 软件包 java-1.8.0-openjdk.x86_64.1.1.8.0.352.b08-2.el7_9 将被 更新
---> 软件包 java-1.8.0-openjdk-headless.x86_64.1.1.8.0.345.b01-1.el7_9 将被 升级
---> 软件包 java-1.8.0-openjdk-headless.x86_64.1.1.8.0.352.b08-2.el7_9 将被 更新
---> 软件包 tzdata.noarch.0.2022d-1.el7 将被 升级
---> 软件包 tzdata.noarch.0.2022e-1.el7 将被 更新
---> 软件包 tzdata-java.noarch.0.2022d-1.el7 将被 升级
---> 软件包 tzdata-java.noarch.0.2022e-1.el7 将被 更新

安装compose-plugin:

根据不同的操作系统选择不同安装命令

[root@localhost ~]# sudo yum install docker-compose-plugin
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.lzu.edu.cn
 * extras: ftp.ksu.edu.tw
 * updates: mirror.lzu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-compose-plugin.x86_64.0.2.12.2-3.el7 将被 安装
--> 解决依赖关系完成

查看安装情况

[root@localhost ~]# docker compose version
Docker Compose version v2.12.2

Docker Compose基本命令介绍

Docker Compose命令基本上和Docker相差不多,主要就是对Docker Compose生命周期控制、日志格式等相关命令,可以通过docker-compose --help进行帮助。

[root@localhost ~]# docker compose --help

Usage:  docker compose [OPTIONS] COMMAND

Docker Compose

Options:
      --ansi string                Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
      --compatibility              Run compose in backward compatibility mode
      --env-file string            Specify an alternate environment file.
  -f, --file stringArray           Compose configuration files
      --profile stringArray        Specify a profile to enable
      --project-directory string   Specify an alternate working directory
                                   (default: the path of the, first specified, Compose file)
  -p, --project-name string        Project name

Commands:
  build       Build or rebuild services
  convert     Converts the compose file to platform's canonical format
  cp          Copy files/folders between a service container and the local filesystem
  create      Creates containers for a service.
  down        Stop and remove containers, networks
  events      Receive real time events from containers.
  exec        Execute a command in a running container.
  images      List images used by the created containers
  kill        Force stop service containers.
  logs        View output from containers
  ls          List running compose projects
  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 service containers
  rm          Removes stopped service containers
  run         Run a one-off command on a service.
  start       Start services
  stop        Stop services
  top         Display the running processes
  unpause     Unpause services
  up          Create and start containers
  version     Show the Docker Compose version information

Run 'docker compose COMMAND --help' for more information on a command.
#构建建启动nignx容器
docker-compose up -d nginx
#进入nginx容器中
docker-compose exec nginx bash
#将会停止UP命令启动的容器,并删除容器
docker-compose down   
#显示所有容器
docker-compose ps 
#重新启动nginx容器
docker-compose restart nginx  
#构建镜像
docker-compose build nginx  
#不带缓存的构建
docker-compose build --no-cache nginx 
#查看nginx的日志
docker-compose logs  nginx 
#查看nginx的实时日志
docker-compose logs -f nginx
#验证(docker-compose.yml)文件配置,
#当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
docker-compose config  -q
#以json的形式输出nginx的docker日志
docker-compose events --json nginx
#暂停nignx容器
docker-compose pause nginx
#恢复ningx容器
docker-compose unpause nginx
#删除容器
docker-compose rm nginx  
#停止nignx容器
docker-compose stop nginx   
#启动nignx容器
docker-compose start nginx

Docker Compose实战

Docker Compose - 大魔王先生 - 博客园

百度安全验证

GitHub 加速计划 / compose / compose
39
5
下载
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
最近提交(Master分支:4 个月前 )
8f644eea Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com> 3 天前
56e92e34 Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com> 4 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐