按语:
运行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