marathon 使用私有倉庫鏡像方法
下載鏡像需要輸入用戶名和密碼的時候奸柬,marathon發(fā)布這樣的images需要用這種方法六水。
首先需要手動登入鏡像倉庫。
# docker login db-registry.inc-test.com
Username: admin
Password: Def@11
登入成功之后會在當(dāng)前用戶的家目錄創(chuàng)建一個隱藏目錄 ~/.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機器上的驗證文件胡控。
結(jié)論:
- 把這個文件放在http頁面上扳剿,只要網(wǎng)絡(luò)通就可以訪問,不需要每臺機器都配置驗證文件昼激,修改也比較訪問庇绽。
把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 官網(wǎng)說明 https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html