(转)Marathon私有镜像仓库用户名和密码方式

下载镜像需要输入用户名和密码的时候,marathon发布这样的images需要用这种方法。

首先需要手动登入镜像仓库。

docker login db-registry.inc-test.com
   Username: admin 
   Password: Def@11

登入成功之后会在当前用户的家目录创建一个隐藏目录 ~/.docker ,打包这么目录,放在一个目录下, 并让marathon启动容器的时候引用这个文件即可

cd ~
$ tar czf docker.tar.gz .docker
$ cp docker.tar.gz /etc/

marathon json 启动容器引用验证文件

 "uris": [
    "file:///etc/docker.tar.gz"
 ]

注释:

  • 这样需要每台mesos slave机器都需要放置这个文件,实际操作很不灵活,
  • 而且用户切换也不好做,每台机器需要放不不用户的验证文件。
  • 如果用户密码修改,还需要批量修改每台slave机器上的验证文件。

结论:

  • 把这个文件放在http页面上,只要网络通就可以访问,不需要每台机器都配置验证文件,修改也比较访问。

把docker.tar.gz文件放在http页面中

scp /etc/docker.tar.gz 10.10.130.201:/var/www/html/download/docker_img/db-harbor-admin.tar.gz
# 一个用户手动生成一个文件,如需要切换用户的时候指定不同文件即可。 

例如:

{
    "id": "nginx",
    "cpus": 0.2,
    "mem": 128,
    "instances": 1,
    "constraints": [
        [
            "hostname",
            "CLUSTER",
            "test.host-test.com"
        ]
    ],
    "uris": [
        "http://10.10.130.201/download/docker_img/db-harbor-admin.tar.gz"
    ],
    "container": {
        "type": "DOCKER",
        "docker": {
            "image": "db-registry.inc-test.com/web-lb/nginx:1.13",
            "network": "BRIDGE",
            "portMappings": [
                {
                    "containerPort": 80,
                    "hostPort": 31009,
                    "servicePort": 0,
                    "protocol": "tcp"
                }
            ]
        }
    }
}

marathon 官网说明 https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html


作者:北极企鹅ys
链接:https://www.jianshu.com/p/97c567eea2d9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

原文地址:https://www.cnblogs.com/zhangmingcheng/p/12956507.html