一. 前言:
这次小熙分享下docker的部署,和对应用jar的镜像生成和访问。
二. 环境和准备:
环境和项目:
还是沿用之前apollo中的(java 8、centos7、user-service)
准备:
(1)Docker要求CentOS系统的内核版本高于 3.10 ,通过下面的命令查看你当前的内核版本是否支持dockeruname -r小熙的版本如图所示:

(2)更新yum包:sudo yum update成功如图所示:

(3)安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2成功如图所示:

(4)添加docker镜像仓的yum源:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo成功如图所示:

如果不想启动应用jar和访问,可忽略(4)以下
(5)创建配置dockerfile:如图:

FROM java:8 VOLUME /tmp COPY user_service-1.0.0-SNAPSHOT.jar /dockerimage/user_service-1.0.0-SNAPSHOT.jar ENTRYPOINT ["java","-Xmx256m","-jar","/dockerimage/user_service-1.0.0-SNAPSHOT.jar"] # 1.java:8 是使用jdk版本 # 2.user_service-1.0.0-SNAPSHOT.jar是使用jar包名称 # 3.ADD user_service-1.0.0-SNAPSHOT.jar /testimage/user_service-1.0.0-SNAPSHOT.jar 拷贝jar到容器 # 4.ENTRYPOINT 执行jar文件
三. 部署docker:
查询镜像仓docker版本,并安装:
小熙安装的版本是docker-ce-18.06.0.ce,个人可选择。
(1)查看所有docker镜像:
yum list docker-ce --showduplicates | sort -r
(2)安装对应版本docker:sudo yum install docker-ce-18.06.0.ce

启动docker、并设置开机自启:
(1)启动docker:
sudo systemctl start docker(2)设置开机自启:
sudo systemctl enable docker
验证安装是否成功(有client和service两部分表示docker安装启动都成功了):
docker version
查看docker启动状态:
systemctl status docker
四. 卸载docker:
查询docker安装过的包:
yum list installed | grep docker
删除安装包:
yum remove docker-ce.x86_64删除镜像/容器等:
rm -rf /var/lib/docker
五. 启动并验证:
准备好可执行jar(这里小熙用的是项目的user-service模块)和dockerfile文件:

构建镜像:(注意最后的点要加,-t 后面加的是镜像名称,小熙也是第一次执行,所以多了java生成的镜像)
docker build -t user-service-image .(1)-i:–interactive即使没有连接,也可以保持STDIN处于打开状态,如果您完全想键入任何命令,都需要打开。
(2)-t:–tty分配一个伪TTY,一个伪终端,它将用户的“终端”与stdin和stdout连接起来。(请参阅container/container.go)
可查看生成的镜像:docker images
启动docker镜像容器服务(将宿主机的8093端口映射到容器的8093端口):
docker run -d -p 8093:8093 user-service-image(1).-d 后台运行
(2).-p 8093:8093 将服务器上的8093端口映射到docker容器的8093端口可查看运行中的容器(状态为UP即为成功运行):
docker images
访问验证:
输入以下路径,访问应用镜像,查询返回数据如下图所示。
http://192.168.186.129:8093/userService/1访问成功如图:

六. 后语:
以上就是小熙简单分享的docker部署,和相关应用使用了。下篇有机会深入了解下。