Linux环境安装docker部署若依框架前后端项目

Linux+Docker部署若依前后端分离项目
1、VMWare安装
1.1、第1步 准备VMware安装包:
VMware 17 下载地址与安装教程【WIN】
VMware 17.0 下载地址 :
VMware 17.5 下载地址 :
如果需要正版的VMware 17.5或者VMware 17.0的安装包请联系本人
1.2、第2步:安装


1.png

下载完安装包之后,右键管理员身份运行


2.jpg

勾选我接受许可协议条款,点击”下一步”
3.png

更改安装位置点击”下一步”!可以不更改! 更改的话不要路径不能有中文
4.png

取消勾选,点击”下一步”
5.png

点击”下一步”
6.png

点击”安装”
7.png

软件正在安装中,请耐心等待安装完成


8.png

点击许可证
9.png

输入许可证后 点击 “输入”
许可证
10.png

点击”完成”


11.png

然后就可以去桌面,或者开始菜单打开软件使用啦。

2、虚拟机安装
2.1、创建新的虚拟机


1.png

2.2.选择自定义(高级)


2.png

2.3.选择虚拟机硬件兼容性
3.png

2.4.安装客户机操作系统
4.png

2.5.选择操作系统


5.png

2.6.配置安装位置
6.png

2.7.设置虚拟机处理器配置
7.png

2.8.设置虚拟机内存
8.png

2.9.设置网络类型
9.png

2.10.选择I/O控制器类型,默认就好
10.png

2.11.选择磁盘类型,默认


11.png

2.12.选择磁盘
12.png

2.13.指定磁盘大小
13.png

2.14.指定磁盘文件
14.png

2.15.核对配置,单击完成
15.png

2.16.编辑虚拟机设置
16.png

2.17.开启虚拟机
17.png

2.18.开始安装,选择后等待安装
18.1.png

2.19.选择语言
19.png

2.20.配置安装信息
20.png

20.1.png

20.2.png

2.21.设置root密码
21.png

2.22.点击重启
22.png

22.1.png

2.23.登录系统


23.png

2.24.配置网卡
24.png

24.1.png

2.24.1.使用vi编辑ifcfg-ens33
24.2.png

24.3.png

2.24.2.重启网络服务 service network restart
24.4.png

24.5.png

3、使用MobaXterm连接虚拟机
3.1.点击session


1.png

3.2.选择SSH


2.png

3.3.填入ip地址, 点击下方的OK
3.png

3.4.输入用户名和密码连接服务器
4.png

3.5.连接成功,示例


5.png

4、切换为国内源
4.1.备份原有的源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

1.png

4.2.查看是否备份完成
cd /etc/yum.repos.d
ll 或 ls 或 ls -a
2.png

4.3.生成阿里源
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
PS: wget 非交互式的网络文件下载工具
权限的虚拟机因为没有安装wget,所以一般会报错 :-bash: wget: 未找到命令
3.png

输入指令: yum install wget
新虚拟机的CentOS-Base.repo 可能不能顺利的将wget指令文件包下载下来,一般情况下会出现报错:
4.png

此时yum update和 yum install 均不能正常执行,解决办法:
a、首先排查网络是否可以正常连接:ping www.baidu.com
如果可以正常ping通,则网络正常;
b、cd /etc/sysconfig/network-scripts vi ifcfg-ens33
查看ONBOOT=yes 可以适当的在底部加上DNS1=114.114.114.114
ESC后输入 :wq 退出
c、修改CentOS-Base.repo
第一种:
1.sudo vim /etc/yum.repos.d/CentOS-Base.repo 将 mirrorList都注释掉,将baseurl都取消注释, :wq 保存修改
2.执行 sudo yum update 更新软件包列表,这一步带来的效果是自动生成缓存。
3.恢复 CentOS-Base.repo到原始状态(baseurl注释掉,mirrorList取消注释)
4.继续执行sudo yum install xxx 一切恢复正常。
第二种:
将CentOS-Base.repo 内容进行替换:

正文

[base]
name=CentOS-releasever - Base - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/releasever/os/basearch/ http://mirrors.aliyuncs.com/centos/releasever/os/basearch/ http://mirrors.cloud.aliyuncs.com/centos/releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

released updates

[updates]
name=CentOS-releasever - Updates - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/releasever/updates/basearch/ http://mirrors.aliyuncs.com/centos/releasever/updates/basearch/ http://mirrors.cloud.aliyuncs.com/centos/releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

additional packages that may be useful

[extras]
name=CentOS-releasever - Extras - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/releasever/extras/basearch/ http://mirrors.aliyuncs.com/centos/releasever/extras/basearch/ http://mirrors.cloud.aliyuncs.com/centos/releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

additional packages that extend functionality of existing packages

[centosplus]
name=CentOS-releasever - Plus - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/releasever/centosplus/basearch/ http://mirrors.aliyuncs.com/centos/releasever/centosplus/basearch/ http://mirrors.cloud.aliyuncs.com/centos/releasever/centosplus/$basearch/
gpgcheck=1
enabled=0

结束

5.png

d、执行systemctl restart network
执行 yum install wget
接着执行:wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4.4、清空缓存:执行 yum clean all
6.png

4.5、重新生成缓存
执行 yum makecache
7.png

5.生成快照(此时可以生成快照将当前的节点保存)
5.1.点击管理快照


1.png

5.2.点击拍摄快照


2.png

5.3.填入必要信息点击拍摄快照
3.png

5.4.等待左下角保存完成
4.png

6.JDK的安装
6.1.新建存放压缩包的文件夹 /yun


1.png

上传jdk8的tar.gz的压缩包到/
6.2.使用MobaXterm上传文件


2.png

6.3、解压jdk压缩包
3.png

解压好后的样子
4.png

6.4.配置环境变量
进入刚才解压文件夹路径
输入pwd查看文件夹全路径


5.png

配置环境变量

vim /etc/profile

出现错误 -bash: vim: 未找到命令

执行

yum install vim

按insert进入插入模式, 粘贴一下内容, 按esc退出, 输入:wq退出

java environment

export JAVA_HOME=/yun/jdk1.8.0_151
export JRE_HOME={JAVA_HOME}/jre export CLASSPATH=.:{JAVA_HOME}/lib:{JRE_HOME}/lib export PATH={JAVA_HOME}/bin:$PATH

6.png

设置环境变量生效

source /etc/profile

6.5.防火墙设置
此处开放3306和8080端口, 3306后面需要使用(公网服务器不建议打开)

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent

跟新防火墙规则

firewall-cmd --reload

防火墙列表

firewall-cmd --zone=public --list-ports

防火墙状态

systemctl status firewalld

启动防火墙

systemctl start firewalld

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

6.6.如果是WEB项目,可以自行安装tomcat(略)
解压配置省略最终完成的效果如图:


7.png

7.Docker的安装
7.1.查看系统内核版本
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。


1.png

7.2.更新yum包

使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum update

2.png

7.3.卸载旧版本(如果安装过旧版本的话) 执行 yum remove docker docker-common docker-selinux docker-engine
7.4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
执行:yum install -y yum-utils device-mapper-persistent-data lvm2
7.5.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.png

7.6.安装最新版本的Docker
yum install -y -y docker-ce docker-ce-cli containerd.io
4.png

7.7.启动Docker并设置开机启动
systemctl start docker
systemctl enable docker
7.8.验证Docker
docker version
5.png

7.9.配置阿里云镜像源.在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入
{
"registry-mirrors": ["https://docker.registry.cyou","https://4l4ops0j.mirror.aliyuncs.com",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}

7.9.3.重启daemon
systemctl daemon-reload

7.9.4.重启docker服务
systemctl restart docker

8.使用docker搭建mysql环境

拉取镜像

docker pull mysql:5.7

启动镜像

docker run -p 3306:3306 --name mysql1 -di -v /home/yun/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/yun/data/mysql/data/:/var/lib/mysql -v /home/yun/data/mysql/log/:/var/log -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

navicat 连接:


6.png

7.png

至此docker安装mysql容器已经完成

业务场景:建库 当前项目所需要的数据库:nyj-livepig-pro
以及迁移数据:


8.png

9.docker中部署最新版redis
9.1 docker 命令执行docker pull redis命令,拉取镜像。


9.png

执行docker images命令,查看刚才拉取的镜像。


10.png

Redis配置
1、mkdir -p /data/redis/{conf,data}

11.png

2.上传redis.conf文件到/data/redis/conf文件夹中网上寻找redis.conf配置文件,具体配置文件如下(亲测完美):
12.png

3、配置redis.conf文件
配置redis.conf文件:
redis.conf文件配置注意:
bind 127.0.0.1 #注释掉这部分,使redis可以外部访问(一般都是注释的) 或者bind 0.0.0.0 允许任何主机访问
daemonize no #用守护线程的方式启动
requirepass 输入你的密码 #给redis设置密码
appendonly yes #redis持久化  默认是no
4、执行docker安装redis指令:
docker pull redis
docker images
docker run -p 6379:6379 --name myredis -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf
5、执行:docker logs -f -t --tail 100 myredis 查看redis是否有权限
6、执行:docker exec -it myredis /bin/bash
7、执行:redis-cli或者 docker exec -it redis redis-cli进入容器
8、执行:auth 123456(数据库密码)
9、测试redis的数据存储 set username yuyun出现OK后 get username 查看,如果出现则安装成功;
13.png

输入 ping 指令后,出现 PONG 标识,代表我们安装成功了,服务可以正常启动

10、若依部署后端服务
构建Dockerfile镜像
1.切换到家目录 cd ~
2.新建文件夹 mkdir ruoyi-admin
3.进入到新建文件夹 cd ruoyi-admin


14.png

上传ruoyi-admin.jar和Dockerfile_ruoyi-admin文件到同一目录,例如:/root/ruoyi-admin
ruoyi-admin.jar 的配置:


15.png

16.png

17.png

打包:
18.png

上传ruoyi-admin到/root/ruoyi-admin/路径之下:
19.png

新建Dockerfile并构造Dockerfile的脚本:

基础镜像使用jdk1.8

FROM openjdk:8-jdk-alpine

作者

MAINTAINER yuyun

VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp

VOLUME /tmp

将jar包添加到容器中并更名

ADD ruoyi-admin.jar /opt/app.jar

暴露8080端口

EXPOSE 8080
ENTRYPOINT ["java", "-Xmx512m", "-jar","/opt/app.jar"]
如图:


20.png

接下来给ruoyi-admin.jar 以及Dockerfile文件赋予777或者755权限:


21.png

4.ruoyi-admin为镜像名称,开始制作镜像


22.png

完成镜像制作后,执行docker images
23.png

执行:docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080 ruoyi-admin
出现报错:docker: Error response from daemon: network net-ry not found.
解决问题;
vim /etc/resolv.conf
增加:
nameserver 8.8.8.8
nameserver 8.8.4.4
:wq
systemctl restart network
ping www.baidu.com
然后继续执行:
docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080 ruoyi-admin
成功:

24.png

如果遇到主机和虚拟机之间可以互ping,并且ping的通的情况,而且ping www.baidu.com也都可以ping的通的情况下,
虚拟机上将后台程序已经用docker启动起来了,而且docker查看日志是正常的,但是在主机的浏览器上访问
192.168.188.130:8080却不能出现网络响应。
此时的解决办法是输入指令:vim /etc/resolv.conf
增加nameserver=8.8.8.8以及nameserver=8.8.4.4
然后重启网络
systemctl restart network
然后查看 /etc/resolv.conf 看nameserver=8.8.8.8以及nameserver=8.8.4.4是否成功的写入并完成配置;
如果重启网络后nameserver被重置了,并且刚才写入的nameserver=8.8.8.8以及nameserver=8.8.4.4并没有生效
此时需要手动在ifcfg-ens33中添加对应的DNS
以当前的生猪环境为例:因为是188网段的。
cd /etc/sysconfig/network-scripts
vim ifcfg-ens33
增加DNS1=192.168.188.2
DNS2=8.8.8.8
DNS3=8.8.4.4
后再重启网络 systemctl restart network
再查看vim /etc/resolv.conf此时nameserver=8.8.8.8和nameserver=8.8.4.4已经成功配置;

至此后端部署完成
检查:


25.png

用postAPi检查:


26.png

11、若依框架前端项目部署
11.1、部署前端H5项目 创建目录
mkdir -p /data/nginx/{conf,html}
11.2、上传nginx.conf至/data/nginx/conf文件夹中
代码如下:
192.168.188.130为自己的服务器, 修改为自己服务器ip
在上传nginx.conf 文件之前先编辑或者新建nginx.conf
如下:

user nobody;

worker_processes 1;

error_log logs/error.log;

error_log logs/error.log notice;

error_log logs/error.log info;

pid logs/nginx.pid;

events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8010;
server_name 192.168.188.130
charset utf-8;
location / {
root /usr/share/nginx/html/dist;
try_files uriuri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host http_host; proxy_set_header X-Real-IPremote_addr;
proxy_set_header REMOTE-HOST remote_addr; proxy_set_header X-Forwarded-Forproxy_add_x_forwarded_for;
proxy_pass http://192.168.188.130:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include /etc/nginx/conf.d/*.conf;
}

监听端口设置为8010;(前端端口可自行定义)
11.3、docker获取nginx镜像
docker pull nginx:latest


1.png

将镜像拉取下来之后 查看docker images
11.4、启动nginx容器
docker run -d -p 8010:8010 --name ruo-yi-nginx -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
为什么设置路径为/usr/share/nginx/htm,因为刚才在nginx.conf里的location的根目录下配置的是这个路径下加载dist包
如果不存在/usr/share/nginx/htm该文件的路径,则新建该路径;
dist包为前端包,可以前端打包或者让前端同事提供;分别将dist包迁移至
/data/nginx/html 文件路径下及 /usr/share/nginx/html文件路径之下;

查看效果:docker ps -a


2.png

查看到nginx的状态为启动的状态;

然后验证若依前端项目的部署情况,在浏览器上输入<u>http://192.168.188.130:8010/</u>

如下:


3.png

则若依框架的前后端项目在docker环境下部署已完成;
OK,完成收工吃饭去!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容