环境准备
一般来说,直接通过一条命令就可以直接安装并启动rancher了:docker run -d --restart=always -v /data/rancher_server:/var/lib/mysql -p 8080:8080 rancher/server
。第一次运行比较慢,因为要生成初始化很多数据。
命令简介
--restart
表示重启策略,这里设置的是always
,意思是当docker服务重启的时候,此容器也重启。其选项如下:
-
no,默认策略,在容器退出时不重启容器
-
on-failure,在容器非正常退出时(退出状态非0),才会重启容器
-
- on-failure:3,在容器非正常退出时重启容器,最多重启3次
-
always,在容器退出时总是重启容器
-
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
-v
是挂载命令,其中/data/rancher_server
是宿主机目录,而/var/lib/mysql
是容器内目录;
-p
是端口映射,rancher默认端口是8080
,冒号前面的是宿主机端口,后面的是容器对应的端口。
版本选择
Tag | Description |
---|---|
rancher/rancher:latest | 最新的开发版本,通过我们的CI自动化框架进行构建,该版本不推荐用于生产环境。 |
rancher/rancher:stable | 最新的稳定版本,该版本被推荐用于生产。 |
rancher/rancher:<v2.X.X> | 可以通过明确指定镜像版本标签来安装特定的Rancher server版本。 |
使用外部MySQL数据库
除了使用内部数据库外,还提供了一些额外的参数去连接外部数据库。
docker run -d --restart=unless-stopped -p 8080:8080 rancher/server \
--db-host 192.168.196.196 --db-port 3306 --db-user username --db-pass password --db-name cattle
大部分的输入参数都有默认值并且是可选的,只有MySQL数据库主机地址配置项是必须配置的。
--db-host #数据库主机名或IP地址
--db-port #数据库服务端口(默认为:3306)
--db-user #数据库用户名(默认为:cattle)
--db-pass #数据库用户密码(默认为:cattle)
--db-name #数据库名(默认为:cattle)
配置
切换语言
管理员
主机
将复制的命令直接在准备添加的主机上执行。
我这边出现了如下错误:
Unable to find image 'rancher/agent:v1.2.11' locally
v1.2.11: Pulling from rancher/agent
b3e1c725a85f: Pull complete
6a710864a9fc: Pull complete
d0ac3b234321: Pull complete
87f567b5cf58: Pull complete
063e24b217c4: Pull complete
d0a3f58caef0: Pull complete
16914729cfd3: Pull complete
bbad862633b9: Pull complete
3cf9849d7f3c: Pull complete
Digest: sha256:0fba3fb10108f7821596dc5ad4bfa30e93426d034cd3471f6ccd3afb5f87a963
Status: Downloaded newer image for rancher/agent:v1.2.11
INFO: Running Agent Registration Process, CATTLE_URL=http://192.168.196.196:8080/v1
INFO: Attempting to connect to: http://192.168.196.196:8080/v1
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
ERROR: http://192.168.196.196:8080/v1 is not accessible (Failed to connect to 192.168.196.196 port 8080: No route to host)
原因是没开8080端口,开通即可。
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
执行完成后,查看添加的主机信息。
镜像库
这里配置我已经搭建好的Docker私服: