192.168.102.44,192.168.102.45,192.168.102.46分别执行” yuminstall docker-io
”命令,在线安装docker工具
1.Linux虚拟机Centos 7.0,服务器CPU:i5 双核以上,内存:2G以上
2.机器名 ip地址 安装软件
test1 192.168.102.44
test2 192.168.102.45
test3 192.168.102.46
启动docker命令: service docker start
停止docker命令: service docker stop
查看docker版本: docker version
Docker信息: docker info
首先将spring-boot工程编译导出jar包,例如:docker-springboot-0.0.1-SNAPSHOT.jar,将jar包上传到192.168.102.44任意目录下保存。
在/usr任意目录下建立一个docker目录,用于编译镜像使用,该目录名字由自己定义,可以与镜像名称相同,例如:/usr/docker-springboot
在/usr/docker-springboot目录下新建一个名为Dockerfile文件(命令: vi Dockerfile),注意该文件无后缀,并将spring-boot工程jar 拷贝到此目录下(jar包必须与Dockerfile在同一目录下),见图:
Dockerfile文件中的内容使用SpringBoot官网推荐:
# 基础镜像
FROM openjdk:7
# VOLUME命令用于让你的容器访问宿主机上的目录。
VOLUME /tmp
# ADD命令有两个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统。如果源是一个URL,那该URL的内容将被下载并复制到容器中。
ADD docker-springboot-0.0.1-SNAPSHOT.jar app.jar
# RUN命令是Dockerfile执行命令的核心部分。它接受命令作为参数并用于创建镜像。
RUN sh -c 'touch /app.jar'
ENV命令用于设置环境变量。这些变量以”key=value”的形式存在,并可以在容器内被脚本或者程序调用。
ENV JAVA_OPTS=""
# ENTRYPOINT 帮助你配置一个容器使之可执行化
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
注意:需要将ADD中的第一个jar包改成自己的jar包名字即可。
接下来开始生产镜像,命令进入(cd /usr/docker-springboot),执行以下命令:
docker build -tdockerspringboot:0.1.0 .
注意:改命令结尾有一个点符号。
如下图:
如果执行成功(Successfullybuilt)即代表镜像生成完成。
使用查看镜像命令: docker images
可以查看生成镜像及版本号,如下图:
镜像生成以后,需要docker容器来启动镜像,启动容器命令如下:
docker run -d -p 8080:8080dockerspringboot:0.1.0
注意:-d 代表容器启动后返回容器ID
-p 代表机器端口映射到容器端口,前面端口代表机器端口,后面端口代表容器端口。(注:一台物理机可以启动几千个容器,因此机器端口和容器端口映射关系可以自己定义)
最后一项是镜像名加镜像版本号。
如下图:
查看容器状体命令:
docker ps 查看所有运行中容器
docker ps -l 查看最近一条启用容器
如下图:
到此,spring-boot工程jar包利用docker部署已经完成,可以检查部署效果了。
验证部署效果:
以上jar包是本人自己写的一个测试小程序,访问地址及效果如下图:
Docker是为微服务华部署所应用工具,因此一般服务都会部署多份,如何利用docker多机部署了?
1. 本地镜像导出,导入
2. 多台机器启动同一镜像
具体方法如下:
1, 查看要导出镜像id
2, 选择要打包的镜像,执行打包命令
docker save -odockerspringboot.tar dockerspringboot
会在当前目录下生成导出文件dockerspringboot.tar,然后就可以将该文件拷贝到其他机器上,例如:192.168.102.45:/usr
3,在其他机器上导入镜像
4, 在192.168.102.45上启动docker容器加载镜像,就可以再另外机器上部署应用成功了
5, 验证效果如下:
2.1.1 在192.168.102.46上新建tomcat文件夹,用于存放部署tomcat的Dockerfile和需要部署到tomcat/webapps中的war包,命令如下:
mkdir /usr/tomcat
建立成功后,如图:
修改Dockfile中构建镜像的命令:
FROM tomcat
ADDdockerwar.war /usr/local/tomcat/webapps/
CMD["catalina.sh", "run"]
注: /usr/local/tomcat/webapps/ 此路径为tomcat下war包的存放路径,利用ADD就是将本地war包拷贝到tomcat下,CMD中配置tomcat的启动路径,如果要输出日志信息可以修改为:CMD ["catalina.sh; tail -F /usr/local/tomcat/logs/catalina.out", "run"]
然后将需要发布的war包拷贝到/usr/tomcat目录下。
2.1.2 创建新的镜像文件,输入命令:
(1) cd /usr/tomcat
(2) docker build -t tomcat2 .
如下图:
(3)输入:docker images,查看镜像,如下图:
(4)启动容器,加载镜像,发布应用,输入命令:
dockerrun -d -p 8080:8080 tomcat2
(5)查看容器,输入命令:
Docker ps-a
如下图:
(6),验证发布程序,如下图: