docker安装Rancher

发布时间 2023-07-05 16:43:40作者: ngu2020

环境

cat /proc/version

Linux version 3.10.0-957.21.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue Jun 18 16:35:19 UTC 2019

cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)

docker version

Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64

Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64
Experimental: false

查看cpu

lscpu

CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 8
座: 1
NUMA 节点: 1
厂商 ID: GenuineIntel
CPU 系列: 6
型号: 62
型号名称: Intel(R) Xeon(R) CPU E5-2420 v2 @ 2.20GHz
步进: 4
CPU MHz: 2194.711
BogoMIPS: 4389.42
超管理器厂商: VMware
虚拟化类型: 完全
L1d 缓存: 32K
L1i 缓存: 32K
L2 缓存: 256K
L3 缓存: 15360K
NUMA 节点0 CPU: 0-7
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm epb dtherm ida arat pln pts

查看内存

free -m 或 free -g

rancher 镜像选择

rancher/rancher:latest 最新版
rancher/rancher:stable  稳定版

使用 Rancher 默认的自签名证书

docker run: 运行一个容器。
-d: 在后台(守护进程)模式下运行容器。
--name rancher 容器的名字定义为rancher
--privileged: 赋予容器特权,可以使用所有主机系统的功能和设备。
--cpus=2: 指定容器可以使用的 CPU 核心数量为 2。
-m 2g: 限制容器可用的内存为 2GB。
--restart=unless-stopped: 在容器异常退出时自动重新启动容器,除非显式停止容器。
-p 80:80 -p 443:443: 将主机上的端口 80 和 443 映射到容器中的相应端口,以允许外部访问 Rancher Web UI 的 HTTP 和 HTTPS 界面。
rancher/rancher:latest: 使用 Rancher 公共镜像的最新版本来作为基础镜像

docker run -d --privileged --name rancher  --cpus=2 -m 2g --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    rancher/rancher:latest
  • 查看Rancher日志
docker logs -f rancher
  • 删除Rancher容器和挂载的文件
docker rm -f -v rancher

访问Rancher

Rancher启动较慢, 耐心等待
按照以上配置, 通过https://ip访问Rancher

使用已有的自签名证书

docker run -d --privileged --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    -v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
    -v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
    -v /<CERT_DIRECTORY>/<CA_CERTS.pem>:/etc/rancher/ssl/cacerts.pem \
    rancher/rancher:latest

使用已有的可信证书

注意是证书链文件.证书链不完整会导致ssl验证不通过. 证书链检测工具检测完整性, 证书链不完整时可以用在线工具修复
| 占位符 | 描述 |
| ----------------- | --------- |
| <CERT_DIRECTORY> | 证书文件所在目录。 |
| <FULL_CHAIN.pem> | 证书链文件路径。 |
| <PRIVATE_KEY.pem> | 证书私有密钥路径。 |

docker run -d --privileged --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    -v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
    -v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
    rancher/rancher:latest \
    --no-cacerts

使用 Let's Encrypt 证书

docker run -d --privileged --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    rancher/rancher:latest \
    --acme-domain <YOUR.DNS.NAME>

docker-compose.yml 相关

# 创建存放Rancher的docker-compose.yml的目录
mkdir -p /app/docker/rancher

# docker-compose.yml 内容如下

遇到的问题

给Rancher容器分配的内存太小. 需要扩容

docker stop rancher 
docker update --memory="4g" rancher
docker start rancher

参考

docker rancher 镜像tag
Rancher安装指南