基于docker完整部署java项目,详细 linux和openEuler部署

openEuler部署Java项目,基于docker离线部署 Linux部署docker

简介:1.完整项目部署流程 从openEuler离线安装docker整个流程
2.镜像文件的准备MySql、redis、nginx、jdk和Java项目、minio镜像
3.容器的创建,容器运行命令的解析 数据卷的挂在,容器网络的绑定
4.整个项目的启动,日志的查看,容器相关的命令

一、基于欧拉docker离线安装

## 在cenos7 服务器上面下载 然后将下载好的docker放到服务器上面
1.wget  https://download.docker.com/linux/static/stable/x86_64/docker-20.10.23.tgz

# 解压
2.tar zxvf docker-20.10.23.tgz

# 将docker相关文件放到 bin目录下
cp docker/* /usr/bin/

# 下面擦操作是将docker做成系统服务
vim /etc/systemd/system/docker.service  (创建配置文件)

# 下面是配置内容:

[Unit] 
Description=Docker Application Container Engine 
Documentation=https://docs.docker.com 
After=network-online.target firewalld.service 
Wants=network-online.target 
[Service] 
Type=notify 
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1 
ExecReload=/bin/kill -s HUP $MAINPID 
LimitNOFILE=infinity 
LimitNPROC=infinity 
LimitCORE=infinity 
TimeoutStartSec=0 
Delegate=yes 
KillMode=process 
Restart=on-failure 
StartLimitBurst=3 
StartLimitInterval=60s 
[Install] 
WantedBy=multi-user.target 
  • 下面命令进行授权 启动docker
# 授予可执行权
1.chmod +x /etc/systemd/system/docker.service

# 重载系统配置
systemctl daemon-reload

# 启动docker
systemctl start docker

# 设置开机自启
systemctl enable docker

# 查看启动状态
systemctl status docker

# 查看docker版本
docker --version
Docker version 20.10.23, build 7155243

下面是一些操作流程:

  1. 创建目录
    在这里插入图片描述
  2. docker下载
    在这里插入图片描述
  3. docker版本查看
    在这里插入图片描述

4.docker常用命令

以下是 Docker 中一些常用的命令:

镜像相关命令:

docker images:列出当前系统中的镜像。
docker pull <镜像名称>:从 Docker Hub 上下载指定名称的镜像。
docker build -t <镜像名称> <Dockerfile路径>:根据 Dockerfile 构建自定义的镜像。
docker push <镜像名称>:将本地的镜像推送到 Docker Hub 或私有容器注册表。
docker rmi <镜像名称或镜像ID>:删除指定的镜像。
容器相关命令:

docker run <镜像名称>:在容器中运行指定的镜像。
docker ps:列出正在运行的容器。
docker ps -a:列出所有的容器,包括已停止的容器。
docker start <容器ID或容器名称>:启动已停止的容器。
docker stop <容器ID或容器名称>:停止正在运行的容器。
docker restart <容器ID或容器名称>:重启容器。
docker rm <容器ID或容器名称>:删除指定的容器。
日志和查看命令:

docker logs <容器ID或容器名称>:查看容器的日志。
docker exec -it <容器ID或容器名称> <命令>:在正在运行的容器中执行命令。
docker inspect <容器ID或容器名称>:查看容器的详细信息。
网络相关命令:

docker network ls:列出 Docker 中的网络。
docker network create <网络名称>:创建一个自定义的 Docker 网络。
docker network connect <网络名称> <容器ID或容器名称>:将容器连接到指定的网络。
docker network disconnect <网络名称> <容器ID或容器名称>:将容器从指定的网络断开连接。

停止并删除所有容器
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)

删除所有镜像:
docker rmi $(docker images -aq)

Ubuntu 或 Debian:
sudo apt-get purge docker-ce docker-ce-cli containerd.io

CentOS 
sudo yum remove docker-ce docker-ce-cli containerd.io

打开终端并执行以下命令移除 Docker 客户端:
sudo rm -rf /Applications/Docker.app

删除 Docker 配置和相关文件:
rm -rf ~/Library/Containers/com.docker.docker

卸载docker 
yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine```

二、基于欧拉docker安装mysql

在有网的情况下,可以直接下载安装;在没有网的情况下,可以将准备好的镜像打包,然后上传到服务器上,然后解压镜像;这里建议创建同一个docker环境下的网络,后面容器都用同一个网络,这样容器可以直接通过容器名成互连,不用担心容器内ip地址的变化;下面两种方式进行示范

相关的命令:

有网的情况下
1.镜像拉取
docker pull mysql
2.查看镜像
docker images
3.创建网络
docker network create wis
docker network ls
4.运行mysql
docker run -d --name mysql --restart always -p 3306:3306 -v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/init:/docker-entrypoint-initdb.d -v /docker/mysql/conf:/etc/mysql/conf.d -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123 --network wis mysql
5.查看容器是否成功运行
docker ps 
6.查看日志
docker logs -f mysql

没有网的情况下,只需要将打包好的镜像解压成镜像即可,在运行就行
1.打包镜像
docker save -o mysql.tar mysql
2.解压镜像
docker load -i mysql.tar

容器运行指令解析

run	 #运行容器
-d	 #后台运行(可选)
--name	#容器名称
--restart #开机自启(可选)
-p	#端口映射
-v	#数据卷挂载(可选)
-e	#环境配置(可选)
--network	#指定容器网络(可选)
  • MySQL下载
    在这里插入图片描述

  • 有网安装
    在这里插入图片描述

  • 离线安装
    在这里插入图片描述

三、安装redis

	redis安装和MySQL安装类似;如果在有网络的情况拉取镜像,运行容器;如果没有网需要准备好镜像包,解压镜像包,再运行容器

这里没有设置redis密码

有网:
1.docker pull redis	#拉取最新镜像

2.docker images	# 查看镜像

3.docker run -d --name redis --restart always -p 6379:6379 -e TZ=Asia/Shanghai --network wis redis #运行容器

4.docker ps	#查看容器运行状况

5.docker logs -f redis	# 查看日志

离线:
1.docker save -o redis.tar redis	#打包好redis镜像

2.docker load -i redis.tar		#解压准备好的redis镜像

3.运行容器跟上面步骤一样
  • 查看redis镜像

没有镜像会先下载在运行

  • 运行redis容器

!没有](https://img-blog.csdnimg.cn/direct/1283823274af4c7cad7dac97e3390eef.png)
容器运行

  • 查看容器运行情况
    容器启动成功
  • 离线安装打包镜像
    镜像打包
    -解压redis镜像包
    解压redis镜像包
  • 剩下步骤跟上面一样

四、安装后端环境

	这里我们直接通过dockerfile构建Java后端运行环境,使用的jdk8;打包好jar包文件
1.上传java程序包和Dockerfile文件,用来构建后端镜像文件

2.构建镜像
docker build -t wis .	#构建镜像文件

3.运行容器

docker run -d --name wis --restart always -p 20001:8080 --network wis wis
  • Dockerfile文件 --直接写一份dockerfile文件就行,也可以仿照下面的
    在这里插入图片描述
  • 构建镜像

在这里插入图片描述

  • 运行容器
    在这里插入图片描述
  • 查看容器是否允许成功

在这里插入图片描述

  • 查看日志是否报错

在这里插入图片描述

五、安装nginx

nginx安装跟上面差不多,数据卷挂载要注意,nginx.conf配置文件要挂载前面,前端静态文件挂载在后面,踩过坑,希望大家不要踩坑,也可以自己去试下;这里我的配置文件端口20002 前端静态文件路径/docker/nginx/data/dist,需要将准备好的静态文件放在这个映射出来的目录;同时需要将准备好的nginx.conf配置文件放到数据卷挂载的目录下
创建的nginx的时候,需要提前运行好后端容器,因为前端要访问后端,否则前端容器运行会报错

后端访问路径

前面的步骤大家应该也会来了,我就不重复写
1.mkdir -p /docker/nginx/data # 创建好挂载的目录需要存放nginx.conf配置文件和前端静态文件

docker run -d --name nginx --restart always -p 20002:20002 -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/data/dist:/docker/nginx/data/dist -e TZ=Asia/Shanghai --network wis nginx
  • 创建对应的目录

配置文件

  • 上传配置文件和静态文件在对应的目录下

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

六、访问

访问前需要把前端端口开放出来,这里我偷个懒,直接关闭防火墙 (建议:开放指定端口,不要关闭防火墙,可以看哦上一篇文章,端口如何开放)

systemctl stop firewalld

访问方式:ip+端口
在这里插入图片描述

避坑:

运行容器出现一下错误,需要打开防火墙
在这里插入图片描述

结语:

基于docker部署java项目整套环境,docker部署主要的好处在于跨平台型,这个项目,我们公司部署在OpenEuler欧拉系统上;希望对大家有所帮助,需要资料的或者有什么疑惑的可以下方留言,或者私信我,我看到后的第一时间回复大家 希望大家能点点赞,多多关注在这里先谢谢大家了~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值