Docker 部署 Java 项目实践
这里写目录标题
- 一、centos7系统安装docker
- 二、docker安装mysql并且使用DataGrip连接
- 三、编写使用Dockerfile打包启动java程序
- 四、使用docker-comopse.yml文件执行java程序
- 五、shell语句自动部署
一、centos7系统安装docker
利用docker的压缩包进行安装。
使用findshell工具连接上虚拟机,进入根目录,然后进入opt目录创建docker文件夹。

将docker压缩包放到docker文件夹中,并且进行解压缩。
unzip docker.zip
进入docker目录:
cd docker/
给docker的安装命令添加执行权限:
chmod +x install-docker.sh

执行命令安装docker:
sh ./install-docker.sh
出现下面的情况就说明docker安装成功:

二、docker安装mysql并且使用DataGrip连接
创建存放mysql文件的目录,并且把mysql.tar包上传。
并且使用该命令创建mysql镜像:
docker load -i mysql.tar

使用命令,查看虚拟机中存在的镜像:
docker images

使用下面的命令创建容器:
docker run -d \--name mysql \-e MYSQL_ROOT_PASSWORD=123456 \-e MYSQL_ROOT_HOST=% \-p 23306:3306 \mysql:latest
上面的命令是将dockers中的容器映射到虚拟机中的一个端口(23306),并且登录密码是123456
出现下面的情况说明docker容器创建完成

使用DataGrip创建连接之后:

这样mysql也就安装完成了。
三、编写使用Dockerfile打包启动java程序
利用jdk.tar包下载安装jdk的镜像:
docker load -i jdk.tar
出现下面的情况就是安装完成:

出现了openjdk8的镜像:

创建test文件夹,并且把jar包放入当该文件夹中:
vi Dockerfile
FROM openjdk:8WORKDIR /app#ADD ./docker-test.jar /app/docker-test.jar
ENTRYPOINT ["java","-jar","docker-test.jar"]
1、说明jdk的镜像源
2、说明容器的工作空间
3、说明虚拟机的中位置与容器中的对应关系
4、docker的启动指令
需要在与Dockerfile同一层级下创建test的容器用来执行操作:
dokcer build -t test:1.0 .
出现下面的情况说明执行操作成功

四、使用docker-comopse.yml文件执行java程序
再执行这个操作之前要创建docker-compose.yml文件:
version: '3'
services: test:image: "test:1.0.1"container_name: testrestart: alwaysports: - 18080:8080volumes:- ./data/:/appenvironment:- TZ=Asia/Shanghainetworks:- test
networks:test:external: true
version: ‘3’ 是值得版本号
test指的是容器名称
restart:重启策略是否一直重启
ports:容器中的端口号与虚拟机中的端口好对应关系
volumes::容器中的工作空间与虚拟机中的工作空间对应关系
networks:网络安全组
接下来需要创建网络组:
docker network create test

利用docker-compose命令启动:

看到springboot项目已经启动:

五、shell语句自动部署
我们可以创建shell语句完成自动部署java程序,我们需要创建一个.sh文件,其中文件内容如下:

#!/bin/bash
echo “停用容器”
docker-compose down
echo “删除镜像”
docker rmi test:1.0.1
echo “构建镜像”
docker build -t test:1.0.1 .
echo “运行容器”
docker-compose up -d
通过上述得命令,可以自动重启容器,用来管理项目
使用下面的命令执行shell文件:
sh ./buiild.sh

