一. 前言:

这次小熙分享下docker的部署,和对应用jar的镜像生成和访问。

二. 环境和准备:

  1. 环境和项目:
    还是沿用之前apollo中的(java 8、centos7、user-service)
  2. 准备:
    (1)Docker要求CentOS系统的内核版本高于 3.10 ,通过下面的命令查看你当前的内核版本是否支持docker
uname -r

小熙的版本如图所示:

linux docker run 命令 linux运行docker_jar


(2)更新yum包:

sudo yum update

成功如图所示:

linux docker run 命令 linux运行docker_docker_02

(3)安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

成功如图所示:

linux docker run 命令 linux运行docker_linux_03


(4)添加docker镜像仓的yum源:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

成功如图所示:

linux docker run 命令 linux运行docker_linux_04


如果不想启动应用jar和访问,可忽略(4)以下

(5)创建配置dockerfile:如图:

linux docker run 命令 linux运行docker_linux_05

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:

  1. 查询镜像仓docker版本,并安装:
    小熙安装的版本是docker-ce-18.06.0.ce,个人可选择。
    (1)查看所有docker镜像:
yum list docker-ce --showduplicates | sort -r

linux docker run 命令 linux运行docker_bash_06


(2)安装对应版本docker:

sudo yum install docker-ce-18.06.0.ce

linux docker run 命令 linux运行docker_bash_07

  1. 启动docker、并设置开机自启:
    (1)启动docker:
sudo systemctl start docker

(2)设置开机自启:

sudo systemctl enable docker

linux docker run 命令 linux运行docker_linux_08

  1. 验证安装是否成功(有client和service两部分表示docker安装启动都成功了):
docker version

linux docker run 命令 linux运行docker_linux docker run 命令_09

  1. 查看docker启动状态:
systemctl status docker

linux docker run 命令 linux运行docker_docker_10

四. 卸载docker:

  1. 查询docker安装过的包:
yum list installed | grep docker

linux docker run 命令 linux运行docker_docker_11

  1. 删除安装包:
yum remove docker-ce.x86_64
  1. 删除镜像/容器等:
rm -rf /var/lib/docker

五. 启动并验证:

  1. 准备好可执行jar(这里小熙用的是项目的user-service模块)和dockerfile文件:
  2. 构建镜像:(注意最后的点要加,-t 后面加的是镜像名称,小熙也是第一次执行,所以多了java生成的镜像)
docker build -t user-service-image .

(1)-i:–interactive即使没有连接,也可以保持STDIN处于打开状态,如果您完全想键入任何命令,都需要打开。

(2)-t:–tty分配一个伪TTY,一个伪终端,它将用户的“终端”与stdin和stdout连接起来。(请参阅container/container.go)

linux docker run 命令 linux运行docker_linux docker run 命令_12


可查看生成的镜像:

docker images

linux docker run 命令 linux运行docker_bash_13

  1. 启动docker镜像容器服务(将宿主机的8093端口映射到容器的8093端口):
docker run -d -p 8093:8093 user-service-image

(1).-d 后台运行
(2).-p 8093:8093 将服务器上的8093端口映射到docker容器的8093端口

可查看运行中的容器(状态为UP即为成功运行):

docker images

linux docker run 命令 linux运行docker_jar_14

  1. 访问验证:
    输入以下路径,访问应用镜像,查询返回数据如下图所示。
http://192.168.186.129:8093/userService/1

访问成功如图:

linux docker run 命令 linux运行docker_jar_15

六. 后语:

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