首页 >> 知识 >> docker

docker

 

 

重新启动单个节点的其他答案都在目标上docker-compose restart worker.这将弹回该容器,但不包括任何更改,即使您单独重建它.您可以手动stop,rm,create,和start,但也有更容易的方法.

如果您已更新代码,则可以通过以下步骤执行构建和重新加载:

docker-compose up --detach --build

这将首先从任何更改的代码重建您的图像,如果自重用缓存后没有任何更改,这将很快.然后它只替换更改的容器.如果下载的图像过时,您可以在上面的命令之前:

docker-compose pull

首先下载任何已更改的图像(在运行上述命令之前,不会重新启动容器up).不需要进行初始停止.

要仅为单个服务执行此操作,请使用您要指定的服务执行up或pull命令,例如:

docker-compose up --detach --build worker

下面是第一个选项的快速示例,Dockerfile的结构使得代码的频繁变化部分接近结束.事实上,pip install由于该文件很少更改,因此需要单独提取.由于nginx和redis容器是最新的,因此它们没有重新启动.整个过程的总时间不到6秒:

$ time docker-compose -f docker-compose.nginx-proxy.yml up --detach --buildBuilding counterStep 1 : FROM python:2.7-alpine ---> fc479af56697Step 2 : WORKDIR /app ---> Using cache ---> d04d0d6d98f1Step 3 : ADD requirements.txt /app/requirements.txt ---> Using cache ---> 9c4e311f3f0cStep 4 : RUN pip install -r requirements.txt ---> Using cache ---> 85b878795479Step 5 : ADD . /app ---> 63e3d4e6b539Removing intermediate container 9af53c35d8feStep 6 : EXPOSE 80 ---> Running in a5b3d3f80cd4 ---> 4ce3750610a9Removing intermediate container a5b3d3f80cd4Step 7 : CMD gunicorn app:app -b 0.0.0.0:80 --log-file - --access-logfile - --workers 4 --keep-alive 0 ---> Running in 0d69957bda4c ---> d41ff1635cb7Removing intermediate container 0d69957bda4cSuccessfully built d41ff1635cb7counter_nginx_1 is up-to-datecounter_redis_1 is up-to-dateRecreating counter_counter_1real 0m5.959suser 0m0.508ssys 0m0.076s

 

网站地图