栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker Compose 服务编排

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker Compose 服务编排

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

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

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

1.Docker Compose的使用步骤
  • 利用Dockerfile定义运行环境镜像(dockerfile相关使用参考Docker相关内容整理(二)_活水774的博客-CSDN博客)
  • 使用docker-compose.yml定义组成应用的各服务
  • 运动docker-compose.up 启动应用
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

     

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/828550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号