我想我不明白。首先,我創建了泊塢窗機:docker-machine和docker-compose有什麼區別?
$ docker-machine create -d virtualbox dev
$ eval $(docker-machine env dev)
然後我寫了Dockerfile和碼頭工人,compose.yml:
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
最後,我建立並啓動了形象:
$ docker-compose build --no-cache
$ docker-compose start
我檢查我的虛擬機的IP
$ docker-machine ip dev
並在我的瀏覽器中成功打開了該網站。但是當我對代碼做了一些修改 - 什麼都沒有發生。所以我登錄到「開發」機器:
$ docker-machine ssh dev
我沒有找到我的代碼!所以我登錄到碼頭「網絡」圖片:
$ docker exec -it project_web_1 bash
並且出現了一個代碼,但沒有改變。
什麼是碼頭機?什麼感覺?爲什麼docker在更改後不會同步文件?它看起來像碼頭+碼頭機+碼頭構成痛苦在本地發展的一個:...)
謝謝。
我通常在linux上運行,所以我放棄了docker-machine,現在看起來好多了:-) – User
我的評論似乎很晚,但無論如何:我可以在Windows Env變量中設置docker-machine env屬性來不輸入他們每次打開一個shell?這有什麼影響嗎? – Dedyshka
你不能硬編碼它們,因爲它們可能會改變。 (虛擬網絡接口地址,就是這樣的事情。)在Linux上,我編寫了一個登錄腳本,將上面的'eval'設置爲shell環境,但我不知道如何在Windows中發揮這種魔力。 – AlexChaffee