Предполагая, что я создал DJANGO project
с использованием docker-compose
в соответствии с примером, приведенным в https://docs.docker.com/compose/django/
Ниже приведен простой docker-compose.yml
файл для понимания сакэ
docker-compose.yml
version: '3'
services:
db:
image: postgres
web:
image: python:3
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
Здесь я использую два изображения python:3
(называемые "web"
) и postgres
(называемые "db"
), которые автоматически определяются из hub.docker.com
и строятся соответственно.Мы также хотим, чтобы web container
зависело от db container
.Просто чтобы вспомнить, что в docker-compose.yml
выше
Как только я установлю все, что я делаю docker-compose up
, и мы увидим, что два containers
запущены и django
проект запущен на моей локальной машине.
После того, как я поработал со своим приложением django, теперь я хочу развернуть его на рабочем сервере.
Итак, как скопировать образы на сервер разработки, чтобы я снова работал над теми же образами докера?.
Поскольку я пытаюсь создать файл docker-compose.yml на производственном сервере, то есть вероятность, что образ БД и веб-изображение могут измениться.
Как:
Когда я создаю образ postgres
на моем компьютере разработчика, скажите, что у меня postgres version 9.5
Но если я снова соберу образ postgres
на производственном сервере, то у меня может быть установлен postgres version 10.1
.
Так что я не буду работать в той же среде, может быть в той же операционной системе, но не в той же версии пакетов.
Так как это проверить, когда я перехожу на разработку
Частично решено:
Согласно ответу @ Yogesh_D,
Если я использую предварительно созданные изображения из концентратора Dokcer, мы можем легко получить то же самоесреда на производственном сервере, использующая номер версии, такой как postgres: 9.5.1 или python: 3.
Частично не решен:
Но если я создал изображение самостоятельно, используя свой собственный файл Docker, а затем отметил его при сборке.Теперь я хочу использовать то же изображение в производстве, как это сделать.Поскольку его нет в Docker Hub, а также, возможно, меня не заинтересует его установка в Docker Hub.
Так что будет неплохо скопировать вручную мой образ на рабочий сервер, или я просто скопирую Dockerfile и снова создаю образ там на рабочем сервере.