docker 部署Java项目

一、安装docker环境+加速器

二、了解项目所需安装的插件版本

例如:mysql版本,jdk版本,其他中间件.... 当前项目只要mysql5.7.29、jdk 1.8

三、安装数据库+初始化数据

1、拉取mysql镜像

docker pull mysql:5.7.29

2、运行mysql容器

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 \
--privileged=true \
--restart=always \
镜像id/名 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
解释:
-p 端口映射,MySQL默认端口3306
--name 容器名
-e 设置环境变量  
----- MYSQL_ROOT_PASSWORD root本地登录的密码【root@localhost】
--privileged=true 最高权限
-d 后台运行
--character-set-server=utf8mb4 --- 设置mysql默认字符集
--collation-server=utf8mb4_unicode_ci ---- 设置mysql连接服务字符集

3、需改密码

ps: 因为MySQL是在容器中运行的,想要修改密码需要进入容器内的mysql中进行设置

#登录mysql容器
docker exec -it mysql容器名 /bin/bash  
#登录mysql
mysql -u root -p密码【docker run设置的是123456】

更改加密规则:
ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
更新root用户密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
更新启用
FLUSH PRIVILEGES;

4、连接工具连接上数据库并初始化数据

之后操作和linux的一样--略

四、项目部署

java项目打包有两种方式:war包和jar包
war包需要的tomcat【tomcat安装需要jdk】进行发布,jar包可以直接运行【得有jdk环境】

1、war包部署

因为用docker创建tomcat容器,这个容器已经自带了jdk,就无需额外安装了,比传统linux安装节省一步 jdk安装,但是要注意tomcat镜像内带的jdk版本问题,因为当前项目用jdk8,tomcat镜像只能用
8.5.23左右,再高内置jdk版本就太高了

(1)、拉取镜像

docker pull tomcat:8.5.23 --- 拉取tomcat镜像

(2)、启动容器

#启动一个叫tomcat8.5.23容器,映射端口8080,设置特权运行,开机自动启动,目录挂载,使用镜像是
tomcat:8.5.23
docker run -d -p 8080:8080   --name tomcat8.5.23 \
-v /usr/local/apps:/usr/local/tomcat/webapps \
--privileged=true \
--restart=always \
tomcat:8.5.23

(3)、上传war包项目到映射目录中

(5)、修改默认访问界面

想要修改默认界面,修改tomcat配置文件【tomcat根目录下conf目录中的server.xml文件】,将默认访问的项目改为自己的项目

#目前tomcat实际再容器内部,想要修改的配置文件也在容器中,但是容器内部的linux版本很低,没有vi指令,此处可以将server.xml先复制到宿主机中,改好了再放进去
docker cp 容器名:文件路径 宿主机目录

------ 下面是修改的地方----------
<!---找到host name,从中加入context配置--->
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!--docBase:设置默认项目n-->
<Context path="" docBase="webapps中项目名字" debug="0" reloadable="false" />
</Host>

将修改后的配置文件扔回去,重启即可

2、jar包部署【重要】

目前使用docker进行部署,应该所有的内容都要通过docker进行管理才对,docker是管理容器的工具,容器想要创建必须有对应的镜像,自己的项目不可能在docker hub远程仓库中存在镜像的。因此就需要自己创建镜像。

1、修改jar包路径

2、上传jar包到宿主机中

3、在当前目录中创建Dokcerfile文件【名字不能改必须叫这个】,并配置

vi Dockerfile  
--------------------进行下列配置-----------------
#给一个默认的镜像openjdk版本8---jdk1.8
FROM openjdk:8
#复制宿主机中当前目录下的jar包到容器中某个路径[结尾需要/代表是一个目录,否则就成重命名了]
#复制命令有两个ADD,COPY,但是jar包不能解压的,选COPY
COPY oasys.jar /usr/local/apps/
#开放容器端口,因为项目中需用8088端口,此处开放8088
EXPOSE 8088
#容器启动时需要让上传jar包执行
#已知:执行jar包命令:java -jar jar包路径
#CMD会让定义的指令在容器启动时自动执行
CMD ["java","-jar","/usr/local/apps/oasys.jar"]

4、使用docker build指令构建镜像

docker build -t 【自定义镜像名】:【自定义镜像版本】 【dockerfile文件所在目录路径】
选项
-t 给镜像加一个Tag
ImageName 给镜像起的名称
TagName 给镜像的Tag名
Dir Dockerfile所在目录

5、查看镜像

6、运行镜像

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值