我想我不明白。首先,我创建了泊坞窗机: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