【docker学习-5】docker compose

服务编排概念

【场景】

微服务架构的应用系统中一般包含若千个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

  • 要从Dockerfile build image或者去dockerhub拉取image
  • 要创建多个container
  • 要管理这些container (启动停止删除)

此时“服务编排”的思想就应运而生。服务编排,就是按照一定的业务规则批量管理容器。

Docker Compose概念

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:

  1. 利用Dockerfile定义运行环境镜像
  2. 使用docker-compose.yml定义组成应用的各服务
  3. 运行docker-compose up启动应用

Docker Compose安装

# 下载 Docker Compose 的当前稳定版本
curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 将可执行权限应用于二进制文件
chmod +x /usr/local/bin/docker-compose

# 查看docker-compose版本
docker-compose -version

如果github下载docker compose太慢 则换源下载

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

使用docker-compose编排nginx+springboot项目

第一步:编写docker-compose文件

# 文件名必须叫 docker-compose.yml
touch docker-compose.yml
version: '3'
services:
  nginx:
   image: nginx
   ports:
    - 80:80
   links:
    - app
   volumes:
    - ./nginx/conf.d:/etc/nginx/conf.d
  app:
    image: myapp:1
    expose:
      - "8080"

【注意】

  • app中的image如果有TAG必须加上,否则无法创建app容器
  • nginx中的links是链接到下面的app的,如果links中写了一个不存在的配置,nginx会启动失败。
  • yml可以通过前面加一个横杠,写多个值。

第二步:创建./nginx/conf.d目录

mkdir -p ./nginx/conf.d

第三步:在./nginx/conf.d目录下 编写itheima.conf文件

server {
    listen 80;
    access_log off;

    location / {
        proxy_pass http://app:8080;
    }
   
}

第四步:返回到docker-compose.yml所在的目录,使用docker-compose创建容器并启动

# 若想后台启动,在后面加-d
docker-compose up

日志中可以看到创建nginx容器和app容器的信息 

 看到容器的信息

页面访问也可以不用80端口了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值