У меня нет большого опыта работы с Docker, поэтому я не уверен, возможно ли это вообще, но я пытаюсь экспортировать свои контейнеры Docker как единый образ.
Я создал веб-сервер, используя различные изображения из официальных репозиториев (nginx, php7, postgresql). У меня есть файл docker-compose.yml, чтобы запускать каждый контейнер и связывать их.
Есть тома для корневого каталога веб-хостинга и каталогов данных postgresql.
Теперь мне нужно экспортировать всю эту партию, включая тома, чтобы наши технические специалисты на местах могли легко установить наш веб-сервер в клиентских сетях. Обычно у нас нет доступа к Интернету на этих компьютерах, поэтому я не могу просто передать им файлы compose и Dockerfiles.
Прошу прощения, если я не совсем ясен, но для меня это все еще в новинку.
web:
image: nginx:latest
environment:
- DOCKER_WEB=true
#stdin_open: true
#tty: true
ports:
- "8080:80"
volumes:
- ./code:/code
- ./default.conf:/etc/nginx/conf.d/default.conf
links:
- php
cron:
build: './docker/cron'
links:
- web
throwaway:
build: './docker/throwaway'
volumes:
- ./code:/code
php:
#image: php:7-fpm
build: './docker/php'
links:
- postgres
volumes:
- ./code:/code
postgres:
image: postgres:latest
environment:
- POSTGRES_USER=un_rftags
- POSTGRES_PASSWORD=pwd_RFT@gs01
- POSTGRES_DB=db_rftags
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- "9090:5432"
Вы можете сохранить все свои изображения сразу с помощью docker save
, а затем импортировать их в целевую систему с помощью docker load
.
Это, конечно, означает, что вам нужно создавать изображения, но, похоже, вы уже это делаете.
Например:
docker save nginx:latest cron throwaway php | xz -c > all-images.tar.xz
Импортируйте их в докер назначения с помощью:
xz -dc < all-images.tar.xz | docker load