docker部署springboot项目(centos7+jdk8+mysql5.6)

一、任务

1.使用docker命令加交互模式部署springboot项目
2.使用Dockerfile加docker命令部署springboot项目
2.使用Dockerfile加docker-compose批处理部署springboot项目


二、项目简介

该项目为一个企业内部的资产管理系统(eam), 开发环境:jdk8+mysql5.6+springboot配置了spring.dataSource.schema以及data,即只需提供数据库,项目启动时自动创建表和初始数据


三、项目简介


四、任务一

#1.创建虚拟网桥eam_bridge,程序将通过网桥访问数据库
docker network create -d bridge eam_bridge

#2.从中央仓库中拉取官方centos镜像,最好把版本写到最全
docker pull centos:7.5.1804

#3.从中央仓库中拉取官方mysql镜像,最好把版本写到最全
docker pull mysql:5.6.41

#4.创建centos容器并设置一定参数
docker run -id --name eam --network eam_bridge -v /eam/program:/eam/program -p 80:80 centos:7.5.1804 /bin/bash
#解析
docker run -id \					#d:后台运行,i:以交互模式运行容器(不加i则直接结束)
--name eam \						#为启动的容器命名为eam
--network eam_bridge \				#指定连接eam_bridge虚拟网桥
-v /eam/program:/eam/program \		#将本地目录映/eam/program同步到容器/eam/program目录,为方便管理文件
-p 80:80 \							#将本地端口80和虚拟机端口80进行映射
centos:7.5.1804 \					#指定镜像
/bin/bash							#-i指定交互执行命令,因为linux启动默认进入,可省略

#5.创建并启动mysql容器,
docker run -d -p 3306:3306 --name eam_mysql --network eam_bridge -v /eam/mysql/conf.d:/etc/mysql/conf.d -v /eam/mysql/data:/var/lib/mysql -v /eam/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=xxxx -e MYSQL_DATABASE=eam mysql:5.6.41 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
#解析
docker run -d -p 3306:3306 \					#d:后台运行,p:端口映射
--name eam_mysql --network eam_bridge \			#name:为容器取名,network:指定连接到的虚拟网络设备
-v /eam/mysql/conf.d:/etc/mysql/conf.d \		#同步mysql配置文件地址
-v /eam/mysql/data:/var/lib/mysql \				#同步mysql数据地址
-v /eam/mysql/log:/var/log/mysql \				#同步mysql日志地址
-e MYSQL_ROOT_PASSWORD=xxxx \				#指定mysql数据库root密码
-e MYSQL_DATABASE=eam \							#创建数据库
mysql:5.6.41 \									#指定使用镜像
--character-set-server=utf8mb4 \				#设置默认字符集
--collation-server=utf8mb4_unicode_ci			#设置排序规则


#6.通过交互加伪终端进入容器/bin/bash
docker exec -it eam /bin/bash

#7.对eam容器执行更新
yum -y update

#8.将准备好的jdk8.tar.g以及eam.jar拷贝到容器指定目录
#可以通过docker cp命令,也可以放入之前做了同步的/eam/program下,这里就放在了/eam/program下

#9.进入/eam/program
cd /eam/program

#10.解压jdk到指定目录
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java

#11.更改解压出来的文件夹为jdk,(为了环境变量中命名方便,无强迫症也可不改名,对应环境变量中要填对)
mv jdk1.8.0_181 jdk

#12.配置环境变量/etc/bashrc,在最末尾增加
JAVA_HOME=/usr/local/java/jdk
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

#13.重新加载环境变量
source /etc/bashrc

#14.通过nohup命令运行java -jar eam.jar,使项目能够后台运行
nohup java -jar eam.jar &

四、任务二

1.Dockerfile

#在/eam/program中创建Dockerfile
vi Dockerfile

#Dockerfile内容开始###################################
FROM centos:7.5.1804
LABEL maintainer="arsenalzjx@gmail.com" \
version="1.0" \
description="jdk 1.8 &springboot-eam-0.0.1.jar"
WORKDIR /usr/local/java
ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/
RUN yum -y update && \
mv jdk1.8.0_181 jdk
ENV JAVA_HOME /usr/local/java/jdk
ENV PATH $PATH:$JAVA_HOME/bin
EXPOSE 80
CMD ["/bin/bash","-c","java -jar /eam/program/eam.jar"]
#Dockerfile内容结束###################################

2.docker 命令启动

#1.创建虚拟网桥eam_bridge,程序将通过网桥访问数据库
docker network create -d bridge eam_bridge

#2.根据当前路径下的Dockerfile创建镜像,192.168.12.68是内部的registry,没有的可以自己命名
docker build -t 192.168.12.68/eam:0.0.1 .

#3.从中央仓库中拉取官方mysql镜像,最好把版本写到最全
docker pull mysql:5.6.41

#5.创建并启动mysql容器,
docker run -d -p 3306:3306 --name eam_mysql --network eam_bridge -v /eam/mysql/conf.d:/etc/mysql/conf.d -v /eam/mysql/data:/var/lib/mysql -v /eam/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=xxxx -e MYSQL_DATABASE=eam mysql:5.6.41 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
#解析
docker run -d -p 3306:3306 \					#d:后台运行,p:端口映射
--name eam_mysql --network eam_bridge \			#name:为容器取名,network:指定连接到的虚拟网络设备
-v /eam/mysql/conf.d:/etc/mysql/conf.d \		#同步mysql配置文件地址
-v /eam/mysql/data:/var/lib/mysql \				#同步mysql数据地址
-v /eam/mysql/log:/var/log/mysql \				#同步mysql日志地址
-e MYSQL_ROOT_PASSWORD=xxxx \				#指定mysql数据库root密码
-e MYSQL_DATABASE=eam \							#创建数据库
mysql:5.6.41 \									#指定使用镜像
--character-set-server=utf8mb4 \				#设置默认字符集
--collation-server=utf8mb4_unicode_ci			#设置排序规则

#6.启动eam程序容器
docker run -id --name eam --network eam_bridge -v /eam/program:/eam/program -p 80:80 192.168.12.68/eam:0.0.1

五、任务三

1.Dockerfile

#在/eam/program中创建Dockerfile
vi Dockerfile

#Dockerfile内容开始###################################
FROM centos:7.5.1804
LABEL maintainer="arsenalzjx@gmail.com" \
version="1.0" \
description="jdk 1.8 &springboot-eam-0.0.1.jar"
WORKDIR /usr/local/java
ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/
RUN yum -y update && \
mv jdk1.8.0_181 jdk
ENV JAVA_HOME /usr/local/java/jdk
ENV PATH $PATH:$JAVA_HOME/bin
EXPOSE 80
CMD ["/bin/bash","-c","java -jar /eam/program/eam.jar"]
#Dockerfile内容结束###################################

2.docker-compose.yml

#在/eam/program中创建docker-compose.yml
vi docker-compose.yml

docker-compose.yml内容:

version: '3'

services:
  eam_mysql:
    image: mysql:5.6.41
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: xxxx
      MYSQL_DATABASE: eam
    volumes:
      - /eam/mysql/conf.d:/etc/mysql/conf.d
      - /eam/mysql/data:/var/lib/mysql
      - /eam/mysql/log:/var/log/mysql
    networks:
      - eam_bridge

  eam:
    build: .
    image: 192.168.12.68:5000/eam:0.0.1
    ports:
      - 80:80
    depends_on:
      - eam_mysql
    volumes:
      - /eam/program:/eam/program
    networks:
      - eam_bridge

networks:
  eam_bridge:
    driver: bridge

3.docker-compose命令

#构建根据yml中build构建镜像,
docker-compose build
#启动镜像
docker-compose up -d
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值