Was ist der Unterschied zwischen Docker-Maschine und Docker-Compose?

Ich glaube, ich verstehe es nicht. Zuerst habe ich eine Docker-Maschine erstellt:

$ docker-machine create -d virtualbox dev
$ eval $(docker-machine env dev)

Dann habe ich Dockerfile und docker-compose.yml geschrieben:

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/


version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    restart: always
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db

um Schluss habe ich das Image erstellt und gestartet:

$ docker-compose build --no-cache
$ docker-compose start

Ich habe die IP meiner virtuellen Maschine überprüft

$ docker-machine ip dev

und öffnete die Site erfolgreich in meinem Browser. Aber als ich einige Änderungen an meinem Code vorgenommen habe, ist nichts passiert. Also habe ich mich bei der "dev" Maschine angemeldet:

$ docker-machine ssh dev

und ich habe meinen Code nicht gefunden! Also habe ich mich beim Docker "web" angemeldet:

$ docker exec -it project_web_1 bash

und es gab einen Code, aber unverändert.

Wofür ist die Docker-Maschine? Was ist der Sinn? Warum synchronisiert Docker nach Änderungen keine Dateien? Es sieht so aus, als ob Docker + Docker-Maschine + Docker-Compose die Qualen für die lokale Entwicklung sind: -)

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage