linux下安装docker并部署运行jar
linux系统安装并启动docker服务
Docker提供了两个版本:社区版 (CE) 和企业版 (EE)。
Docker 社区版 (CE) 是开发人员和小型团队开始使用 Docker 并尝试使用基于容器的应用的理想之选,所以这里我们来说一下Docker社区版的安装。
这里我们说的是在CentOS7版本上安装docker。
1、安装需要的软件包
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
linux命令为:
yum install -y yum-utils device-mapper-persistent-data lvm2
2、设置yum源
命令为:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、启用 edge 和 testing 镜像仓库(可选)
命令分别为:
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-testing
4、安装Docker最新版本
命令为:
yum install -y docker-ce
5、启动Docker
命令为:
systemctl start docker
6、验证安装是否成功
命令:docker version
如图,有client和service两部分表示docker安装启动都成功了。
Docker部署运行jar
一、创建docker镜像
1、创建Dockerfile文件
文件内容如下:
FROM java:8
ADD easyexcel-0.0.1-SNAPSHOT.jar /easyexcel.jar
EXPOSE 8060
CMD java -Djava.security.egd=file:/dev/./urandom -jar /easyexcel.jar
文件内容解析:
FROM java:8 拉取一个jdk为1.8的docker image
easyexcel-0.0.1-SNAPSHOT.jar 就是你上传的jar包的名称
easyexcel.jar 是你将该jar包重新命名为什么名称,在容器中运行
EXPOSE 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
CMD 就是容器启动后执行的命令。
2、构建Docker镜像
命令:docker build -t demo .
注意,命令的最后有一个“.”,表示 Dockerfile 文件在当前目录下。
demo为构建的Docker镜像名称。
二、运行Docker容器
1、运行命令
命令为:
docker run -e TZ="Asia/Shanghai" -d --restart=always --name demo -p 8060:8060 -v /home/demo/easyExcel:/home/demo/easyExcel demo
2、命令解析
1、docker run 指运行docker容器
2、-e TZ=“Asia/Shanghai” 设置容器运行时的默认时区,这里设置为上海时区。
3、-d 指容器在后台运行
4、–restart=always 指Docker重启时,容器自动运行
5、–name demo 指Docker容器的名称
6、-p 8060:8060 用来指定宿主机和容器的端口映射,这里的意思是将宿主机的8060端口映射容器的8060端口
7、-v /home/demo/easyExcel:/home/demo/easyExcel
这里指docker挂载宿主机目录的参数指令,因为jar运行时会有Log日志输出,如果在docker容器里运行,则看不到输出的Log日志文件,需要将对应的日志目录挂载到宿主机,即将文件同步到宿主机上,这样就能看到生成的Log文件。
首先,springboot配置文件里会指定日志输出目录,如下图:
注意,这里设置的Log目录不能为相对路径。
然后,我们可以在服务器上创建相同路径的目录,如下图:
在对应的/home/demo/下创建easyExcel目录。
然后使用-v /home/demo/easyExcel:/home/demo/easyExcel
来挂载Log目录文件。
8、demo 指要运行的镜像
三、进入运行中的docker容器,并查看jar的gc信息
1、查看运行的docker容器
命令:docker ps
上图中圈中的就是容器id
2、进入指定的docker容器
命令:sudo docker exec -it [容器id] /bin/bash
3、查找在docker容器中运行的jar包
命令:ps -ef | grep java
4、查看指定pid的jar包gc信息
命令:jstat -gc [pid] [时间间隔,毫秒为单位]
Docker使用阿里云镜像仓库上传拉取并运行
一、创建阿里云镜像仓库
如上图,选择容器镜像服务。然后创建镜像仓库。
然后点击访问凭证,设置固定密码,如下图:
然后在linux服务器上设置镜像加速器,如下图:
二、Docker将本地镜像push到阿里镜像仓库
1、构建本地镜像
同上面的构建Docker镜像一样,命令:
docker build -t registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0 .
注意,这里的镜像名称为阿里镜像仓库地址+版本,如下图:
上图中的仓库地址按情况选择复制。
命令解析:
registry.cn-hangzhou.aliyuncs.com/hezhan/demo为阿里镜像仓库地址;
v1.0为版本,可以自定义,不传则默认为latest
中间用【:】连接。
2、将本地镜像push到阿里镜像仓库
在push之前,要先登录到阿里镜像仓库,
登录命令为:
docker login --username=书生今天不吃饭a registry.cn-hangzhou.aliyuncs.com
这里的username的值为阿里云账号全名,具体的操作说明可以在阿里云看到,具体在阿里云容器镜像服务,点击具体的镜像命名空间,如下图:
在服务器上使用docker login登录成功后,会在/root/.docker下生成一个文件config.json,注意【.docker】为隐藏文件目录,可以在root目录下通过ls -a
看到。
如果其他服务器也想通过同样的账号密码登录此阿里镜像仓库,则可以将此【config.json】文件复制上传到对应的服务器,则可以免登录即可push、pull镜像。
然后再push到阿里镜像仓库
命令为:
docker push registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0
三、pull阿里镜像仓库
命令为:
docker pull registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0
具体操作说明也可在阿里云上看到,如下图:
四、运行docker从阿里镜像pull下来的镜像
运行同上面的运行Docker容器一样。只不过将镜像名称换为:
registry.cn-hangzhou.aliyuncs.com/hezhan/demo:v1.0
即镜像仓库地址+指定的版本,中间用【:】连接