使用docker部署SpringCloud项目

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 使用docker部署SpringCloud项目

点击上方“Java知音”,选择“置顶公众号”

技术文章第一时间送达!

作者:现实太狗oc https://blog.csdn.net/u011508407/

https://blog.csdn.net/u011508407/

分类阅**(点击即可跳转)**

1. 

**2. **

**3. **

**4. **

**5. **

插件包也给你们准备

准备工作

  • JDK1.8
  • Docker1.12.1
  • CentOS7.0
  • 1.CentOS7.0下JDK1.8的安装

    1、到Oracle官网下载好 jdk-8u181-linux-x64.tar.gz 备用

    2、卸载系统自带的java

    
    java -version           # 如果有结果出来,则说明自带了java
    rpm -qa|grep java       # 查询出已经安装的java
    yum -y remove [上面查出来的东西,多个用空格分隔]
    

    3、安装jdk

    
    cd /usr            #进入到要安装jdk的目录
    mkdir java         #创建java目录,将jdk-8u181-linux-x64.tar.gz上传到此目录
    tar -zxvf jdk-8u181-linux-x64.tar.gz     #将jdk压缩包解压安装
    

    4、配置环境变量

    
    vim /etc/profile      #打开文件并编辑
    

    找到:export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 这一行,并在其下面一行添加如下内容:

    
    # 设置java环境变量
    export JAVA_HOME=/usr/java/jdk1.8.0_181 # 根据情况修改
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    

    使环境变量生效

    
    source /etc/profile    
    

    测试安装

    
    java -version
    

    2.Docker的安装

    1、查看内核版本(Docker需要64位版本,同时内核版本在3.10以上,如果版本低于3.10,需要升级内核)

    
    uname -r
    

    2、更新yum包:

    
    yum update
    

    3、添加yum仓库:

    
    sudo tee /etc/yum.repos.d/docker.repo -'EOF'
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/7/
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF
    

    4、安装Docker

    
    yum install docker-engine
    

    5、启动Docker

    
    service docker start
    

    6、配置docker远程访问

    执行命令编辑文件

    
    vim /usr/lib/systemd/system/docker.service
    

    找到这一行

    
    ExecStart=/usr/bin/dockerd 
    

    改为

    
     ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H
     unix:///var/run/docker.sock
    

    修改完成后保存并重启Docker

    
     service docker restart
    

    测试访问 http://125.35.86.214:2375/version 如果有返回数据则配置成功。

    7、使用Docker国内镜像(为Docker镜像下载提速,非必须)

    
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
    http://fe8a7d6e.m.daocloud.io
    

    3.Docker Compose的安装

    1、下载docker-compose ,并放到/usr/local/bin/

    
    https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname
    -s`-`uname -m`  /usr/local/bin/docker-compose
    

    2、为Docker Compose脚本添加执行权限

    
    chmod +x /usr/local/bin/docker-compose
    

    3、安装完成,测试

    
    docker-compose --version
    

    结果显示:

    
    docker-compose version 1.8.0, build f3628c7
    

    说明Docker Compose已经安装完成了。

    4.Docker使用Maven插件构建并上传镜像

    1、新建Dockerfile文件

    在项目的/src/main下新增文件夹docker,并在文件夹下创建Dockerfile文件,文件内容如下

    
    # 基于哪个镜像
    FROM java:8
    # 将本地文件夹挂载到当前容器
    VOLUME /tmp
    # 拷贝文件到容器,handcuffs-reg-0.0.1-SNAPSHOT.jar这里是maven打包后的名字
    ADD handcuffs-reg-0.0.1-SNAPSHOT.jar app.jar
    RUN bash -c 'touch /app.jar'
    # 配置容器启动后执行的命令
    ENTRYPOINT  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    

    2、修改pom.xml文件增加如下plugin

  • imageName:镜像名称
  • dockerDirectory:Dockerfile文件所在目录
  • dockerHost:docker所在宿主机ip 2375为docker开启的远程访问端口
  • 其他配置采取默认即可

    
    plugin
        groupIdcom.spotify/groupId
        artifactIddocker-maven-plugin/artifactId
        version0.4.14/version
        configuration
            imageNamereg-service/imageName
            dockerDirectorysrc/main/docker/dockerDirectory
             dockerHosthttp://125.35.86.214:2375/dockerHost
               resources
                    resource
                        targetPath//targetPath
                        directory${project.build.directory}/directory
                        include${project.build.finalName}.jar/include
                    /resource
                /resources
        /configuration
    /plugin
    

    每一个微服务项目都要进行配置。

    3、构建镜像并上传至docker

    使用maven运行如下命令

    
    clean package docker:build -DskipTests
    

    上传成功后,在服务器输入

    
    docker images
    

    可以看到所有的docker镜像啦。

    5.使用Docker Compose进行服务编排

    1、在服务器任意目录,新建文件docker-compose.yml

    
    version: '2'
    services:
      eureka-server1:              #自定义服务名--注册中心
        restart: on-failure
        image: reg-service         #镜像名称
        ports:
          - "8761:8761"            #映射的端口
        networks:
          - eureka-net             #网络模式
        environment:               #环境变量
          SERVER_PORT: "8761"      #自定义参数用于给服务的配置文件传递参数
    
      config:                      #自定义服务名--配置中心
        image: config-service      #镜像名称  
        networks:
          - eureka-net             #网络模式
        ports:
          - "8091:8091"            #映射的端口
        environment:               #环境变量配置
          REGISTER_URL: "http://114.115.185.152:8761/eureka/" 
          SERVER_PORT: "8091"
          SERVER_GIT_URL:  "https://gitee.com/deanTheOne/handcuffs-config.git"
          SERVER_GIT_USERNAME: "test"
          SERVER_GIT_PASSWORD: "test"
          RABBITMQ_HOST: "39.105.152.144"
          RABBITMQ_PORT: "5672"
          RABBITMQ_USERNAME: "mqTest"
          RABBITMQ_PASSWORD: "mqTest"
    
    #网关配置参考上面    
      zuul:
        restart: on-failure
        image: gateway-service
        ports:
          - "8000:8000"
        environment:
          REGISTER_URL: "http://114.115.185.152:8761/eureka/"
          SERVER_PORT: "8000"
          SERVER_ADDR: "114.115.185.152"
        networks:
          - eureka-net
    networks:
      eureka-net:
    
        driver: bridge
    

    文件编写完毕保存,切换到当前文件所在目录,输入命令启动Docker Compose

    
    docker-compose -f docker-compose.yml up -d
    

    停止Docker Compose命令

    
    docker-compose -f docker-compose.yml down
    

    看完本文有收获?请转发分享给更多人

    使用docker部署SpringCloud项目

    原文始发于微信公众号(Java知音):

    本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> 使用docker部署SpringCloud项目


     上一篇
    微服务架构之「 容错隔离 」 微服务架构之「 容错隔离 」
    点击上方“Java知音”,选择“置顶公众号” 技术文章第一时间送达! 作者:爱奎哥 公众号:不止思考 公众号:不止思考 技术经验交流:我们知道,在单体应用的架构下一旦程序发生了故障,那么整个应用可能就没法使用了,所以我们要把
    下一篇 
    微服务架构下的分布式限流方案全解析 微服务架构下的分布式限流方案全解析
    点击上方“Java知音”,选择“置顶公众号” 技术文章第一时间送达! 推荐阅**读(点击即可跳转阅读)** 1.  **2. ** **3. ** **4. ** **5. ** 1.微服务限流随着微服务的流行,服务和服务之间的稳定性变得越