сборка docker-compose с несколькими службами в docker-compose.yml - PullRequest
0 голосов
/ 23 июня 2019

Я новичок в docker-compose, я создал простое веб-приложение, использующее флешку и redis, и оно отлично работает на моем локальном хосте. Мой вопрос заключается в том, как перенести это веб-приложение, включая изображения с python и redis, в docker hub и pullэто изображение с другого компьютера.

Обычно я делаю сборку docker-compose, нажимаю docker

version: '3'
services:
 web:
  build: .
  image: "alhaffar/flask_redis_app:2.0"
  ports:
   - "8088:5000"
  depends_on:
   - redis
 redis:
  image: "redis:alpine"

Dockerfile

FROM python:3.7

# CHANGE WORKIN DIR AND COPY FILES
WORKDIR /code
COPY . /code

# INSTALL REQUIRED PACAKGES
RUN pip install --upgrade pip
RUN pip install -r requirements.txt

# RUN THE APP
CMD ["python", "./main.py"]

, когда я пытаюсь получить изображениена другой компьютер и запустить запуск Docker, он запускает только образ python без образа redis.

как я могу запустить все образы

Ответы [ 2 ]

1 голос
/ 23 июня 2019

С помощью вашего Docker Compose Script вы делаете две вещи:

  1. Создайте свое приложение Flask -> Изображение 1
  2. Потяните и запустите Redis -> Изображение 2

Если вы отправляете изображение 1 в DockerHub и переносите его на другой компьютер, вам не хватает второго изображения.

То, что вы хотите сделать, это запустить скрипт компоновки Docker на втором компьютере без строки build.

1 голос
/ 23 июня 2019

Dockerhub и другие реестры Docker работают с изображениями. Docker-compose - это просто абстракция, которая помогает настроить кучу изображений, которые могут работать вместе, используя один файл конфигурации - docker-compose. Нет ничего лучше, чем реестры составления докеров. Затем, если у вас есть файл docker-compose на другом компьютере, вы просто используете docker-compose up и изображения должны быть извлечены - при условии, что они опубликованы в каком-то реестре (публичном / частном). Изображение с вашим приложением должно быть опубликовано вами, и refis будет приниматься из реестра dockerhub, если вы используете официальный образ redis.

Docker-compose полезен, когда вы занимаетесь локальной разработкой и хотите быстро настроить свою рабочую среду. Если вы хотите настроить эту среду на другом компьютере, вам придется поделиться с ними файлом docker-compose, и на этом другом компьютере должны быть установлены docker и docker-compose.

Если ваш docker-compose настроен для создания некоторого образа при запуске, вы все равно можете отправить это изображение, используя команду docker-compose push.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...