Docker Compose 服务编排

微服务架构中一般会有多个微服务,每一个微服务一般都会部署多个实例,如果每一个服务都手动启动,工作量会很大。服务编排就是按照一定的业务规则进行批量管理容器。

docker基础请参考 Docker相关内容整理(一)_活水774的博客-CSDN博客

Docker应用部署_活水774的博客-CSDN博客 Docker相关内容整理(二)_活水774的博客-CSDN博客

1.Docker Compose的使用步骤

2.Docker Compose 的安装

  • 首先需要安装dockerDocker相关内容整理(一)_活水774的博客-CSDN博客
  •  执行命令以二进制包的方式安装在宿主机的系统中
    sudo curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 
    
    #如果github的网速慢,也可以使用下面连接下载
    
    sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    
    #注 
        uname -s 表示系统名称
        uname -m 表示多少位的操作系统
    • 使用github下载时可能会出现curl: 35 tcp connection reset by peer问题,再执行一次命令既可以了
  • 设置文件可执行权限
    chmod +x /usr/local/bin/docker-compose
  • 查看版本信息

    docker-compose -version

3.Docker Compose的卸载

#删除二进制文件即可卸载docker-compose
rm /usr/local/bin/docker-compose

4.应用举例:

使用docker compose编排nginx+springboot项目

  • 首先使用dockerfile构建自己的springboot项目镜像,具体步骤如下,如果这一步已经完成可以直接跳过这个过程
  1. 本地idea打成一个springboot的jar包并上传到linux服务器上,相关jar包资源连接 https://download.csdn.net/download/weixin_59230567/85176753相关代码如下
    @RestController
    public class HelloController {
    
        @RequestMapping("/hello")
        public String hello(){
            return "hello springboot with nginx for docker compose ~ ";
        }
    }
  2. 新建docker-compose文件夹

    #~表示root 目录即 /root
    mkdir ~/docker-compose
    cd  ~/docker-compose

    上传jar包到docker-compose文件夹中

  3. 在docker-compose目录下构建dockerfile文件 

    vim dockerfile
    
    
    FROM java:8
    MAINTAINER xiaohuoshi
    ADD docker_compose_springboot-0.0.1-SNAPSHOT.jar docker_compose_springboot.jar
    CMD java -jar docker_compose_springboot.jar
    
    注:
    FROM image_name:tag              --指定dockerfile基于那个image构建,镜像不存在会先下载
    MAINTAINER user_name             --声明镜像的构建者
    ADD source_dir/file dest_dir/file  --将宿主机文件复制到容器内,并自动解压
    CMD command                      --容器启动命令
    
  4. 通过dockerfile构建镜像

    docker build -t='docker_compose_springboot' .

     查看镜像是否构建成功使用docker images

    表示自定义镜像创建成功 

  5. 在docker-compose文件夹中创建docker-compose.yml

    vim docker-compose.yml
    #输入内容如下
    
    version: '3'
    services:
      nginx:
        image: nginx
        ports:
          - 80:80
        links:
          - app
        volumes:
          - ./nginx/conf.d:/etc/nginx/conf.d
      app:
        image: docker_compose_springboot
        expose:
          - "8080"

    需要注意空格的部分即格式对应部分,上面两个“app”可自定义名称,但必须保持相同

  6. 在docker-compose文件夹中创建nginx/conf.d目录并创建xhs.conf(名字可以自定义)

    mkdir -p nginx/conf.d
    cd nginx/conf.d
    
    #创建xhs.conf
    vim xhs.conf
    #输入内容如下
    server {
     listen 80; 
     access_log off; 
     location / { 
     proxy_pass http://app:8080; 
     } 
    }
    

  7. 在docker-compose目录下 使用docker-compose启动容器

    docker-compose up

    能够看到启动了nginx服务和springboot服务 

  8. 测试访问

  9. 之前其他命令需要重新复制一个窗口

    #查看启动的容器
    docker ps
    
    #关闭单个容器
    docker stop 容器名称/id
    
    #关闭docker-compose启动的容器,需要进入到docker-compose目录下
    docker-compose stop #这种不会删除容器和里面的数据
    docker-compose down #这种会删除容器和删除容器里面的network

     

如果有疑问欢迎在下方评论中留言 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值