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
网友评论