Предварительные условия:
— нет доступа к репозитариям Docker с сервера где надо произвести установку
— возможно закачать файлы на сервер (по ftp или каким то другим способом)
Устанавливаем Docker любым возможных способом, например скачав пакеты вот по этой инструкции для Ubuntu (если у Вас другая система то делайте по соответствующей инструкции)
Устанавливаем докер на локальную машину где есть доступ к репозитариям Docker
Устанавливаем на локальной машине необходимые Docker контейнеры с помощью Docker compose, я буду делать на примере Portainer и создаю папку с именем portainer
в папке создаю файл с именем docker-compose.yaml и запускаю контейнер командой docker compose up -d
дожидаюсь запуска контейнера, так как это первый запуск то он скачает образ, список образов можно посмотреть командой
docker images
выведет список всех образов установленных в Docker
root@comp:/home/user# docker images REPOSITORY TAG IMAGE ID CREATED SIZE portainer/portainer-ce latest 0c03664af9ed 2 months ago 308MB
нам надо импортировать это образ, для импорта используем команду:
docker save --output portainer.tar 0c03664af9ed
где portainer.tar — имя файла экспорта
0c03664af9ed — IMAGE ID из предыдущей команды
теперь закачиваем созданный файл на удаленный сервер и папку с конфигурацией в которой лежит наш docker-compose.yaml файл, в моем случае папку portainer
для загрузки образа переходим в папке на сервере с файлом образа (в моем случае portainer.tar ) и выполняем
docker load --input portainer.tar
образ загружен, но если мы посмотрим список образов то у загруженного образа нет репозитария и TAG
root@vps:/home/user# docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 4e2b39d79f42 7 seconds ago 308MB
для того чтобы задать репозиторий и TAG выполним команду:
docker tag 4e2b39d79f42 portainer/portainer-ce:latest
где репозиторий и TAG пишется через двоеточие, репозиторий и TAG берем из списка Docker образов локальной машины или из файла docker-compose.yaml параметр image:
, теперь у нас образ имеет репозитарий и тег
root@msb-site-repiter:/home/ubuntu# docker images REPOSITORY TAG IMAGE ID CREATED SIZE portainer/portainer-ce latest 4e2b39d79f42 9 minutes ago 308MB
теперь можно запускать контейнер, для этого переходим в папку с файлом docker-compose.yaml и запускаем контейнер командой docker compose up -d поскольку образ у нас загружен то он не будет закачивать образ а запустит контейнер
root@vps:~/docker/portainer# docker compose up -d [+] Running 2/2 ✔ Network mylan Created 0.1s ✔ Container portainer Started
Такую же операцию надо произвести со всеми образами и контейнерами.