文章目录
一、安装rancher
CentOS 7.0默认使用的是firewall作为防火墙
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
docker run -d --restart=unless-stopped -p 8888:8080 rancher/server
在这个过程可能下载某个环节卡主,这里建议退出 重新docker pull 或者systemctl restart docker 重启docker。
安装成功的样子就是下图
这个时候打开网址 ip:8888
把语言切换成 “简体中文”
设置登录的账号密码
1、最上角 系统管理->访问控制->选择LOCAL -> 设置管理员用户 -> 启用本地验证
![在这里插入图片描述](https://img-blog.csdnimg.cn/315fb8a079f84fed8aa2d2ad64712f30.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5py65pm655qEMjIz,size_20,color_FFFFFF,t_70,g_se,x_16
谷歌浏览器->打开新的无痕式窗口->ip:8888 -> 输入账号密码 ->登录成功
二、设置主机
这里建议大家最好用服务器是阿里云、腾讯云等。 我这里演示就VM创建几台虚拟机了 -.-
1、点击添加主机
2、保存
3、设置
上图
第四条->填写刚才拉镜像的那台机器 我这里是192.168.31.91 。
PS:如果是公网服务器(阿里云、腾讯、华为云等),可以不用填写,他会自动识别 所以有钱真好
第五条->复制这里的脚本命令,在192.168.31.91机器上 粘贴这条命令
(这样这台机器就被纳入到Rancher的主机进行管理了)
然后回到页面点击关闭 ->基础架构 ->主机 这个时候就如下图,
就出现我们刚才加进去的主机了。
PS:那么如果我还想添加一台主机被rancher管理,上图左上角,添加主机,步骤同上
目前我这里弄2台玩的
三、rancher开发环境、测试环境、正式环境
如果服务器多,可以新建一个环境。 一般都是用于 比如A项目正式环境,A项目的测试环境,开发环境这样。
四、rancher上部署redis
1、常规docker 下部署redis
docker run -itd --name xdclass-redis -p 8000:6379 redis --requirepass 123456 -v /data/redis/data:/data
rancher的操作是这样
选择环境->添加应用
名称:填写英文 切记 切记 切记! 重要的事情说三遍!
描述:随便来
下面可选操作 不用管。 点击创建
点击添加服务
PS:勾选创建前总是拉取镜像, 如果不√,那就说明当前机器上有redis镜像,他就不去拉取了。
然后我这里做了一下端口映射 8000:6379 --> 如同docker -p 8000:6379 这个操作
命令:--requirepass 123456
其他入口、工作目录 不管
卷:指的是映射的路径 也就是前面 -v /data/redis/data:/data
这里我们直接 /data/redis/data:/data 扔上去即可
调度:如果不选择的话,默认是随机扔到某一台服务器上
所以我这里选择 "在指定主机上运行全部容器" 勾选这个,选一个服务器 运行在上面
然后点击创建
创建成功!!
Redis测试也没问题!!
如果在部署redis遇到问题,可以这么来看
这里展示成功的,但是之前弄的时候报错
chown: changing ownership of '.': Permission denied
解决办法:https://jingyan.baidu.com/article/9c69d48f7821b853c9024ef8.html
如果还有其他报错,
那就看哈日志,百度一下,要么再仔细检查一下配置是否有问题
如果需要修改配置,操作如下图
点击升级,跳转页面 这里我就不截图了,修改之后 点击 升级 按钮
然后这里会显示2个容器,大概意思,第一个容器先停掉,第二个容器就是你升级后的容器。
等他不转了,说明没问题,再点击升级完成,第一个容器就没了,变成了你升级后的容器。
五、rancher上部署RabbitMQ
常规docker 下部署rabbtMQ 。
docker run -d --hostname rabbit_host1 --name rabbitmq1
-p 15672:15672 -p 5672:5672
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin
--privileged=true
-v /usr/local/rabbitmq/1/lib:/var/lib/rabbitmq
-v /usr/local/rabbitmq/1/log:/var/log/rabbitmq rabbitmq:management
镜像版本 rabbitmq:3.8.14-management
MQ环境变量账号密码
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin
六、rancher上部署MySQL
那么同理,根据以下命令在rancher上部署 相信应该没问题了各位。
docker run -p 3306:3306 --name mysql_mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
七、rancher上部署Nginx
1、第一种,写DockerFile 把前端包打到nginx里面去做成镜像 然后巴拉巴拉 (我嫌麻烦)...然后我用第二种
2、第二种 ... 我也不知道怎么说 看步骤吧
在指定的服务器上走以下命令
mkdir -p /data/nginx/{conf,conf.d,html,logs}
vi /data/nginx/conf/nginx.conf
复制下面 然后wq保存
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
vi /data/nginx/conf.d/default.conf
复制下面 然后wq保存
server {
listen 80;
server_name localhost;
location / {
#root /data/nginx/html;
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
vi /data/nginx/html/index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>系统时间</title>
</head>
<body>
<div id="datetime">
<script>
setInterval("document.getElementById('datetime').innerHTML=new Date().toLocaleString();", 1000);
</script>
</div>
</body>
你要是觉得麻烦
直接输入 1234556 就行了 哈哈哈哈哈 不要上面哪些
docker命令是这样的
docker run --name nginx80 -d -p 80:80
-v /data/nginx/html:/usr/share/nginx/html
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /data/nginx/logs:/var/log/nginx
-v /data/nginx/conf.d:/etc/nginx/conf.d -d nginx:latest
在rancher同理
之所以这样,主要每次部署前端,就扔一个前端打的包 到html目录下就行了
可能有些人会出现403,这种问题应该是权限
chmod -R 777 /data/nginx/ (挂载目录 )
就搞定啦