spring cloud-之使用docker部署服务

作者: fkxuexi | 来源:发表于2018-08-21 16:53 被阅读0次

    上一篇我们讲到了,由于要把原来的项目拆分成多个项目,同时跑起来机器肯定好吭哧吭哧的,所以我们采用docker的方式进行部署到另外的一台机器上面,而且现在正式的部署大多数也是采用docker的方式进行部署的。使用docker可以快速的进行部署,而且达到资源利用的最大化。下面就来介绍一下使用docker来部署服务节点eureka

    一、先决条件,安装docker:

    • 环境:centos6.8 x64
    1、因为系统自带的repo中不带docker需要安装epel
    rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
    2、安装docker
    yum install -y docker-io
    3、启动docker
    service docker start
    

    ps:网上前几篇教程,千篇一律的都是需要升级kernel,依据我的实践centos6.8可以不用升级kernel,按照上述步骤即可安装成功。但愿多一些实践教程,少一些抄袭和价值极地的使用google翻译的文档!!!

    二、针对本篇需要了解的命令

    docker一个系列的教程也是相当繁杂的,如果有时间后面可能会写也可能不会,毕竟我是做开发的,平时能用它来简化部署和一系列的安装就可以了,这毕竟是运维的领域术业有专攻,所以这里介绍的东西仅仅为本篇所介绍的东西服务。

    • docker build -t 镜像名字 . 注意不要少了后面的一个 ".",这个是代表当前的目录的
    • docker run -d -p 主机端口1:容器端口1 -p 主机端口2:容器端口2(可以有多个) -v /data(主机目录):/data(容器目录) 镜像id
    docker run -d -p 2001:2001 fb528f5e7835
    
    • docker images 查看docker 有哪些已经构建好的镜像,我们找到镜像的id,可以直接利用上面的命令进行运行
    • docker ps 查看正在运行的容器
    • docker ps -a 查看所有的容器
    • docker start|stop|restart 容器id
    • docker pull 镜像名称,从docker的仓库中拉去已经建立好的镜像
      差不多上面的命令就可以覆盖到今天的内容了,如果还需要了解更多的docker命令可以查看docker菜鸟教程

    三、先决知识 Dockerfile的了解

    由于是基于Dcokerfile进行的,所以需要对Dcokerfile有一些了解,docker可以依据Dockerfile进行构建镜像,基本上eureka是不会变动的,所以我们在后面可以反复的利用这个镜像,甚至于构建集群的时候我们可以修改一下配置,直接启动多个镜像就可以了。

    # 由于现在下载jdk的话需要使用认证,所以我们在生产环境可以使用这个,上线的时候我们可以自己来制作一个镜像就好了,-alpine  这个是一个极小的linux系统(这样可以减小docker镜像的体积),后面不建议使用这个,因为这个dns好像实现的不一样,在服务发现中可能会有问题,所以最好还是使用centos的镜像为基础来构建
    FROM openjdk:8-jdk-alpine 
    VOLUME /tmp
    ADD eureka.jar eureka.jar (前面一个是打包的jar的名字,后面一个是在容器中使用的名字,这个要和最后的-jar 后面的jar包的名字一致)
    RUN sh -c 'touch /eureka.jar'
    ENV JAVA_OPTS=""
    #Djava.security.egd  这个是用来防止springboot项目tomcat启动慢的问题(具体可搜索:随机数数与熵池策略)
    ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /eureka.jar" ]
    
    • FROME:指明在那个镜像的基础上来构建镜像
    • VOLUME:docker因为它的高度的隔离的特性,所以如果不挂在卷的话,容器重启数据就会丢失
    • ADD:是把本地的jar包拷贝到容器里面去
    • RUN:在容器中执行构建命令
    • ENTRYPOINT:本例中代表的是执行java运行jar包的命令

    四、开始构建:

    • 首先把eureka工程打包,本项目是构建jar包,当然打成war也是可以的,需要把FROM所依赖的镜像改为java和tomcat共同的镜像,同时还需要把war ADD到tomcat的webapps(或者指定tomcat的配置)


      image.png
    • 构建镜像 docker build -t eureka .


      image.png

      最后的一串字符串就是镜像的id

    • 查看构建好的镜像id,运行


      image.png
    docker run -d -p 2001:2001
    
    image.png

    出现一个长的字符串就说明我们已经运行成功了

    • 检验一下 http://192.168.0.200:2001


      image.png
    • 查看我们运行的镜像 docker ps -a


      image.png
    • 停止|启动|重启容器:docker stop|start|restart 9a3cc4915c9b

    通过这个方法,我们可以少量的改动Dockerfile的内容,然后就可以通过docker来部署项目,其实后面会介绍可以使用docker compose技术进行批量的构建管理。

    相关文章

      网友评论

        本文标题:spring cloud-之使用docker部署服务

        本文链接:https://www.haomeiwen.com/subject/xrljiftx.html