centos7使用docker搭建运行环境并部署jar(转)

按语:

    运行springboot创建的jar,采用 Docker运行jar包  https://www.cnblogs.com/xihong2014/p/14452173.html

一篇博文,先构建镜像。再利用 docker run -p 8080:8080 demo 方式运行 在java环境下生成的 spingboot架构的helloworld jar文件。

利用本博文开放防火墙对8080端口

在主机上运行 http://192.168.101:/8080 得到正确结果。

==============================================================================================

*首先有一个干净的centos7环境
1.安装docker需要yum来拉取,所以先获取yum源。

yum install -y yum-utils device-mapper-persistent-data lvm2

为yum源添加docker仓库位置

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum install docker-ce

启动docker

systemctl start docker

2.基本工作准备好后开始搭建环境
在主目录下创建mydata目录

mkdir mydata

mysql5.7
先拉取MySQL5.7的镜像

docker pull mysql:5.7
启动MySQL
docker run -p 3306:3306 --name mysql_3306 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
创建数据库可以使用Navicat连接服务器的ip,端口我们把宿主机的3306和docker镜像的3306已经映射起来了。
所以可以直接连接,操作docker内部的数据库。

redis
先拉取redis镜像,版本根据自己的需求

docker pull redis:3.2
启动redis
docker run -p 6379:6379 --name redis_6379 \
-v /mydata/redis/data:/data \
-d redis:3.2 redis-server --appendonly yes

nginx
先拉取nginx镜像

docker pull nginx:1.10
启动nginx
docker run -p 80:80 --name nginx_80 \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx  \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

3.环境基本搭建完毕
在根目录下创建一个文件夹用来放置jar包

mkdir java 
cd java
mkdir project_all
mkdir log
将你打好的jar包放在project_all目录下,然后启动jar。这里采用绝对路径,便于以后找到存放地
nohup java -jar /java/project_all/demo1-1.0-SNAPSHOT.jar >/java/log/demo1.log 2>&1 &
启动查看是否启动成功
ps -ef|grep java|grep -v grep
root     22310 21781 99 10:21 pts/1    00:00:26 java -jar /java/project_all/demo1-1.0-SNAPSHOT.jar
查看jar包的端口是否被你的jar占用
netstat -nltp
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1439/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1983/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      20390/sshd: root@pt 
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      21771/sshd: root@pt 
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1852/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1464/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1439/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1983/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      20390/sshd: root@pt 
tcp6       0      0 :::90                   :::*                    LISTEN      6763/docker-proxy   
tcp6       0      0 ::1:6011                :::*                    LISTEN      21771/sshd: root@pt 
tcp6       0      0 :::2375                 :::*                    LISTEN      6316/dockerd        
tcp6       0      0 :::5000                 :::*                    LISTEN      6504/docker-proxy   
tcp6       0      0 :::3306                 :::*                    LISTEN      6654/docker-proxy   
tcp6       0      0 :::6379                 :::*                    LISTEN      6959/docker-proxy   
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::80                   :::*                    LISTEN      6874/docker-proxy   
tcp6       0      0 :::8085                 :::*                    LISTEN      22310/java          
tcp6       0      0 :::22                   :::*                    LISTEN      1464/sshd
查看防火墙开放的端口
firewall-cmd --zone=public --list-ports
如果未开放,我这里是8085。
firewall-cmd --zone=public --add-port=8085/tcp --permanent #开放8085端口
firewall-cmd --reload   # 配置立即生效
在你浏览器输入你的ip如:http://192.168.2.171:8085/swagger-ui.html 可以出来swagger测试说明
已经成功启动了你的jar

如需发布web前端项目 只用在前端的static文件和index.html放到mydata/nginx/html下启动nginx就可以了。

https://www.it610.com/article/1298013664351166464.htm

posted on 2021-02-26 14:23  xihong  阅读(509)  评论(0编辑  收藏  举报

导航