发现一款非常好的容器管理工具,让不会用Docker的也可以快速安装环境,这就是今天的主人公Rancher。Rancher真正的实现了一键式应用部署
一. Rancher安装环境准备
- Docker拉取镜像
docker pull rancher/server
- 创建Rancher容器
docker run -id --name=rancher -p 9090:8080 rancher/server
- 打开浏览器输入ip:9090即可以看到Rancher的高大上界面
- 在浏览器下方有语言切换
二. Rancher初始化
1. 添加环境
Rancher支持将资源分组归属到多个环境,每个环境具有自己独立的基础架构资源及服务,并由一个或多个用户,团队,组织所管理 例如,可以创建独立的开发,测试以及生产环境以确保环境之间的安全隔离,将开发环境的访问权给开发人员,但限制生产环境的访问权限
1.1 选择default->环境管理菜单,点击添加环境
1.2 填写名称,点击创建按钮
1.3 可以点击左侧的菜单在各种环境上切换
2.添加主机
2.1 选择基础架构->主机菜单,点击添加主机
2.2 拷贝脚本到服务器执行
这里如果下载有问题,多执行几次,如果还是不行,请看页面最后的解决办法
2.3 点击关闭按钮后,会看到界面中显示此主机
3.添加应用
3.1 点击应用->全部(或用户) 点击"添加应用"按钮
填写名称和描述
点击创建按钮,列表中增加了新增的应用
4.应用部署
4.1 MySQL部署
镜像: MySQL:5.7
注意 需要添加环境变量
点击创建按钮 完成创建 上诉命令相当于以下docker命令
docker run -id --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1qaz@WSX mysql:5.7
4.2 Redis部署
与mysql一样的步骤
4.3 项目部署
- 搭建私有仓库
启动私有仓库
docker run -id --name=registry -p 5000:5000 registry
修改daemon.json
vi /etc/docker/daemon.json
添加以下内容,然后保存退出
{"insecure-registries":["10.0.40.61:5000"]}
- 修改docker配置,允许远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
修改后刷新配置
systemctl daemon-reload
systemctl restart docker
docker start registry
-
修改微服务工程,添加DockerMaven插件
-
连接mysql数据库,执行建库脚本
-
在Rancher中添加服务
镜像是ip:5000/unicloud-admin:1.0-SNAPSHOT 端口映射 9092:9092
-- 附录1:问题解决
1. vi /etc/resolv.conf
2. 新加一个参数 nameserver 8.8.8.8
3. 重启docker,重新pull
-- 附录2:DockerMaven配置
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐maven‐plugin</artifactId>
</plugin>
<!‐‐ docker的maven插件,官网:https://github.com/spotify/docker‐maven‐plugin ‐‐>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker‐maven‐plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>ip:5000/${project.artifactId}:${project.version}</imageName>
<baseImage>jdk1.8</baseImage>
<entryPoint>["java", "‐jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://10.0.40.61:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
上述文件会自动生成Dockerfile文件