Назад | Перейти на главную страницу

Сохранение контейнеров Docker как одного образа

У меня нет большого опыта работы с 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