镜像仓库


    基础架构 -> 镜像库 页面, 点击 添加镜像库.

    对于不同的镜像库,您都需要提供邮箱地址, 用户名, and 密码。 对于一个 自定义 镜像库, 您还需要提供镜像库地址。 点击 创建

    如果您对已经存在的镜像仓库地址添加了认证信息,Rancher会开始使用新的认证信息。

    不安全的镜像库

    为了访问不安全的镜像库,您需要配置主机上的Docker守护进程。DOMAIN 和 是私有镜像库的域名和端口。

    自签名证书

    为了在镜像库使用自签名证书,您需要配置主机上的Docker守护进程。 DOMAINPORT 是私有镜像库的域名和端口。

    1. # 下载域名的证书
    2. $ openssl s_client -showcerts -connect ${DOMAIN}:${PORT} </dev/null 2>/dev/null|openssl x509 -outform PEM >ca.crt
    3. # 拷贝证书到合适的目录
    4. $ sudo cp ca.crt /etc/docker/certs.d/${DOMAIN}/ca.crt
    5. # 将证书添加到文件中
    6. $ cat ca.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt
    7. $ sudo service docker restart

    使用亚马逊的ECR镜像库

    在Rancher中使用该镜像时,请使用AWS提供的全名地址,例如:

    aws-account-number.dkr.ecr.us-west-2.amazonaws.com/my-repo:latest.

    使用Google容器镜像仓库

    如果您想使用Google容器镜像仓库,您需要使用一个。请给这个文件配置正确的权限,使其可以正常访问容器镜像所在的Google云存储服务。

    请根据您镜像所在的区域来配置您的镜像仓库地址。使用作为用户名,并且使用服务账户JSON密钥文件中的全部内容作为密码

    当您添加了镜像库以后,您就可以使用这个私有镜像库的镜像来部署服务和容器。镜像名字的格式和使用docker run命令是一样的。

    [registry-name]/[namespace]/[imagename]:[version]

    一个镜像库的所有操作选项可以通过镜像库列表右边的下拉菜单看到。对于任意启用中的镜像库,您可以停用它,停用后Rancher将无法访问该镜像库的私有镜像,所以新的容器无法使用该镜像库的私有镜像(已经登陆过该镜像仓库的主机,仍然可以拉取私有镜像)。对于任意停用中的镜像库,您有两个选项。 一个是启用,这会允许容器使用镜像库中的镜像。您的环境中的任何成员可以使用您的认证信息,而无需重新输入密码。如果您不想这样,您应该删除镜像库,这会从环境中删除镜像库的认证信息。您可以编辑任意镜像库,去修改认证信息,但不能改变镜像库的地址。密码不会出现在“编辑”页面中,所以您需要重新输入密码。

    任何没有指定镜像库前缀的镜像,Rancher会默认从DockerHub中拉取。通过在API中更新配置,可以把默认镜像库从DockerHub改到另外一个。

    • 系统管理 -> 系统设置 -> 高级设置, 点击 我确认已经知道修改高级设置可能导致问题.
    • 找到registry.default 设置然后点击编辑按钮。
    • 添加镜像库的值然后点击 保存.一旦 registry.default 设置被更新,任何没有镜像库前缀的镜像(如 )会从新的默认镜像库拉取。

    如果您使用的私有镜像库需要认证信息,为了使默认镜像库生效,您需要把该镜像库添加到Rancher中。

    默认的,Rancher可以拉取任何被添加的镜像库里的镜像。但管理员可能想要限制哪个镜像库可以使用。 您可以通过API更新配置,来限制哪些镜像库可以用于拉取镜像。

    • 系统管理 -> 系统设置 -> 高级设置, 点击我确认已经知道修改高级设置可能导致问题
    • 找到 registry.whitelist 设置然后点击编辑按钮。
    • 把您想加到白名单中的镜像库加上,如果多于一个,那么镜像库间用逗号分隔。一旦registry.whitelist 设置被更新,在拉取镜像前,会确认镜像所在的镜像库是否在白名单中,如果不是那么拉取会失败。