上一篇我们讲到了,由于要把原来的项目拆分成多个项目,同时跑起来机器肯定好吭哧吭哧的,所以我们采用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技术进行批量的构建管理。
网友评论