下载镜像需要输入用户名和密码的时候,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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处