Rancher1.6安装使用

警告
本文最后更新于 2022-07-01,文中内容可能已过时。

摘要

Rancher1.x版本已经停止维护了,推荐使用Rancher2.x版本。

最简单的(只适用于测试)

1
docker run -d --restart=unless-stopped -p 8080:8080 rancher/server

除了使用内部的数据库,您可以启动一个 Rancher Server 并使用一个外部的数据库。启动命令与之前一样,但添加了一些额外的参数去说明如何连接您的外部数据库。

注意: 在您的外部数据库中,只需要提前创建数据库名和数据库用户。Rancher 会自动创建 Rancher 所需要的数据库表。

创建数据库和数据库用户

1
2
CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';

启动一个 Rancher 连接一个外部数据库,您需要在启动容器的命令中添加额外参数。

1
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server --db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle

在 Rancher Server 容器中,如果您想使用一个主机上的卷来持久化数据库,如下命令可以在启动 Rancher 时挂载 MySQL 的数据卷。

1
docker run -d -v /data/rancher/mysql:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server

停掉正在运行的 Rancher Server 容器

1
docker stop rancher

创建一个rancher-data容器。注意:如果您已经升级了并且已经有了一个rancher-data容器,该步可以跳过。

1
docker create --volumes-from rancher --name rancher-data rancher/server:latest

拉取 Rancher Server 的最新镜像。注意:如果您跳过该步并尝试运行latest镜像,这将不会自动拉取最新的镜像。

1
docker pull rancher/server:latest

rancher-data中的数据库启动一个 Rancher Server 容器。启动之后,Rancher 中的任何变化将会被保存在rancher-data容器中。

注意: 根据您 Rancher Server 时间的长短,某些数据库迁移可能需要比预期的更长的时间。 升级过程中请不要停止升级,因为下次升级时会遇到数据库迁移错误。

1
2
docker run -d --volumes-from rancher-data --restart=unless-stopped \
  -p 8080:8080 rancher/server:latest

删掉旧的 Rancher Server 容器。注意:如果您只是停止了容器,当您使用--restart=always,并且机器重启之后,该容器将会重启。我们建议使用--restart=unless-stopped并且当升级成功之后删除它。

如果您使用外部数据库启动 Rancher Server,您可以先停止原来的 Rancher Server 容器,并使用相同的使用外部数据库的安装说明。升级您的 Rancher Server 之前,建议您备份外部数据库。 新服务器启动并运行后,可以删除旧的 Rancher Server 容器。

这个情况比较特殊

导出 Rancher Server 容器的内部数据库

1
docker exec rancher mysqldump cattle > dump.sql

创建数据库和数据库用户

1
2
CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'Cattle@123';

导入内置数据库的数据

1
mysql -ucattle -pCattle@123 cattle < dump.sql

创建一个rancher-data容器。这一步其实我并不知道需不需要,反正最好创建一下。

1
docker create --volumes-from rancher --name rancher-data rancher/server:latest

启动一个 Rancher 连接一个外部数据库,您需要在启动容器的命令中添加额外参数。

1
2
docker run -d --volumes-from rancher-data --restart=unless-stopped -p 8080:8080 rancher/server \
--db-host 192.168.1.71 --db-port 3306 --db-user cattle --db-pass Cattle@123 --db-name cattle