marathon私有仓库用户名和密码方式

marathon 使用仓库用户名和密码方式

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

1
2
3
# docker login registry.inc-test.com
Username: admin
Password: Default@123

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

1
2
3
4
# cd ~
# tar czf docker.tar.gz .docker

# cp docker.tar.gz /etc/

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

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

注释:

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

结论:

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

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

1
2
3
scp /etc/docker.tar.gz 10.10.130.201:/var/www/html/download/docker_img/harbor-admin.tar.gz

# 一个用户手动生成一个文件,如需要切换用户的时候指定不同文件即可。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"id": "nginx",
"cpus": 0.2,
"mem": 128,
"instances": 1,
"constraints": [
[
"hostname",
"CLUSTER",
"es02.host-test.com"
]
],
"uris": [
"http://10.10.130.201/download/docker_img/harbor-admin.tar.gz"
],
"container": {
"type": "DOCKER",
"docker": {
"image": "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

感谢您的支持!