Содержание

Docker: Выкачиваем образы с DockerHub без Docker'а

Если нужно выкачать образы с DockerHub'а но нет докера, это можно сделать двумя путями: shell-скриптом и python-скриптом.

Shell

Оригинал: https://devops.stackexchange.com/a/2772

Берем скрипт тут: https://raw.githubusercontent.com/moby/moby/master/contrib/download-frozen-image-v2.sh

Использование:

download-frozen-image-v2.sh target_dir image[:tag][@digest] ...

Образ можно импортировать при помощи tar и команды docker load:

tar -cC 'target_dir' . | docker load

Пример работы скрипта для образа Ubuntu на Docker Hub и загрузка в Docker:

user@host:~$ bash download-frozen-image-v2.sh ubuntu ubuntu:latest
user@host:~$ tar -cC 'ubuntu' . | docker load
user@host:~$ docker run --rm -ti ubuntu bash
root@1dd5e62113b9:/#

Загрузка образа на машине с доступом в Интернет (но без установленного Docker) и копирование на целевую машину (где установлен Docker):

user@nodocker:~$ bash download-frozen-image-v2.sh ubuntu ubuntu:latest
user@nodocker:~$ tar -C 'ubuntu' -cf 'ubuntu.tar' .
user@nodocker:~$ scp ubuntu.tar user@hasdocker:~

и дальнейшая загрузка на целевой машине:

user@hasdocker:~ docker load ubuntu.tar
user@hasdocker:~ docker run --rm -ti ubuntu bash
root@1dd5e62113b9:/#

Python

Скрипт лежит тут: https://github.com/NotGlop/docker-drag

Примеры использования:

python docker_pull.py hello-world
python docker_pull.py mysql/mysql-server:8.0
python docker_pull.py mcr.microsoft.com/mssql-tools
python docker_pull.py consul@sha256:6ba4bfe1449ad8ac5a76cb29b6c3ff54489477a23786afb61ae30fb3b1ac0ae9