使用docker compose管理多个容器

在我之前写的一篇文章docker启动spring boot项目 中用到了link来进行容器间的通信,但是这种已经过时了,官方并不提倡,接下来,我们看官方提供的 docker compose工具,来管理多个容器。

为什么需要Docker Compose

当多个容器相互之间需要通讯时,手动配置容器间连接变得非常复杂,一个一个容器手动启动,很笨拙。Docker Compose只需要简单的命令,就可以实现。

什么是Docker Compose

Compose 定位是“defining and running complex applications with Docker”,前身是
Fig,兼容 Fig 的模板文件。 Dockerfile 可以让用户管理一个单独的应用容器;而 Compose
则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web
服务容器再加上后端的数据库服务容器等。
该项目由 Python 编写,实际上调用了 Docker 提供的 API 来实现。
在这里插入图片描述

Docker Compose的使用场景

  • 快速构建开发环境
  • 自动化测试环境
  • 单一主机部署

安装Docker Compose

>>方式一: PIP安装(推荐,但需要有python环境)

执行命令 $ sudo pip install -U docker-compose
后,执行docker compose 检查是否成功

>>方式二:二进制包

发布的二进制包可以在 https://github.com/docker/compose/releases 找到。
下载后直接放到执行路径即可。
例如,在常见的 Linux 平台上。

$ sudo curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod a+x /usr/local/bin/docker-compose

安装完成后,可以使用docker compose --help 来检查是否成功。

使用Docker Compose

  1. 定义Dockerfile
  2. 定义docker-compose/yml文件
  3. 通过docker-cpmpose up 启动docker-conpose.yml所定义的docker应用。

下面将按照在github的项目来使用Docker Compose,地址是: https://github.com/1996yarbrough/mysql-spring-boot-todo.git ,git clone下来后按照下面操作即可。
启动步骤

  1. 进入存在docker-compose.yml的文件目录,jar需要自己打包项目,并放在如下目录
    cd /home/gitRepository/mysql-spring-boot-todo/docker-compose
    在这里插入图片描述

  2. 后台启动
    docker-compose up -d

  3. 测试一下
    网址输入http://192.168.1.163:8080/ ,看到网站打开成功。
    在这里插入图片描述

Docker Compose通过网络别名通信

  1. 审查todo容器
    root@localhost docker-compose]# docker ps
    在这里插入图片描述root@localhost docker-compose]# docker inspect b892424f3268
    在这里插入图片描述root@localhost docker-compose]# docker inspect 04aedda35bbc
    在这里插入图片描述

关于报错

  1. Unsupported config option for services service
    这是因为docker-compose --version的版本与docker-compose.yml定义的版本不一致造成的,
    Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。Version 2支持更多的指令。Version 1没有声明版本默认是"version 1"。Version 1将来会被弃用。
    所以,我们在安装时指定的是1.8.1的版本,docker-compose.yml定义的version:2,就可以正常运行。

小提示

  • docker-compose只有在docker镜像不存在时才会创建镜像
  • 更新dockerfile后一定要执行docker-compose build重新创建镜像
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值