docker-compose重新启动单个容器
这很简单:使用命令:
docker-compose restart worker
您可以设置在杀死容器之前等待停止的时间(以秒为单位)
docker-compose restart -t 30 worker
重新启动单个节点的其他答案都在目标上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 --build
Building counter
Step 1 : FROM python:2.7-alpine
---> fc479af56697
Step 2 : WORKDIR /app
---> Using cache
---> d04d0d6d98f1
Step 3 : ADD requirements.txt /app/requirements.txt
---> Using cache
---> 9c4e311f3f0c
Step 4 : RUN pip install -r requirements.txt
---> Using cache
---> 85b878795479
Step 5 : ADD . /app
---> 63e3d4e6b539
Removing intermediate container 9af53c35d8fe
Step 6 : EXPOSE 80
---> Running in a5b3d3f80cd4
---> 4ce3750610a9
Removing intermediate container a5b3d3f80cd4
Step 7 : CMD gunicorn app:app -b 0.0.0.0:80 --log-file - --access-logfile - --workers 4 --keep-alive 0
---> Running in 0d69957bda4c
---> d41ff1635cb7
Removing intermediate container 0d69957bda4c
Successfully built d41ff1635cb7
counter_nginx_1 is up-to-date
counter_redis_1 is up-to-date
Recreating counter_counter_1
real 0m5.959s
user 0m0.508s
sys 0m0.076s
要在此处重新启动服务,请执行以下步骤:
docker-compose stop -t 1 worker
docker-compose build worker
docker-compose create worker
docker-compose start worker
遵循命令
docker-compose restart worker
将只是停止并启动容器.即,不加载来自docker-compose.xml的任何更改
STOP类似于PC中的休眠.因此,停止/启动不会查找配置文件中所做的任何更改.要从容器配方(docker-compose.xml)重新加载,我们需要删除并创建容器(类似于重启PC)
所以命令如下
docker-compose stop worker // go to hibernate
docker-compose rm worker // shutdown the PC
docker-compose create worker // create the container from image and put it in hibernate
docker-compose start worker //bring container to life from hibernation
重启容器
如果您只想重新启动容器:
docker-compose restart servicename
把这个命令想象成“只用它的名字重启容器”,相当于docker restartcommand。
注意事项:
如果您更改了 ENV 变量,它们将不会在容器中更新。您需要停止它并重新开始。或者,使用单个命令
docker-compose up将检测更改并重新创建容器。正如许多其他人提到的,如果您更改了
docker-compose.yml文件本身,简单的重启将不会应用这些更改。Dockerfile如果您在构建阶段(在使用ADD或命令中)将代码复制到容器中COPY,则每次代码更改时,您都必须重新构建容器(docker-compose build)。
与您的代码的相关性
docker-compose restart如果您的代码通过卷指令将路径映射到容器中,那么应该可以正常工作,docker-compose.yml如下所示:
services:
servicename:
volumes:
- .:/code
但我建议使用实时代码重新加载,这可能由您在调试模式下选择的框架提供(或者,您可以搜索您选择的语言的自动重新加载包)。添加它应该消除每次代码更改后重新启动容器的需要,而不是重新加载内部进程。
使用docker-compose文件重启服务
docker-compose -f [COMPOSE_FILE_NAME].yml restart [SERVICE_NAME]
用例1:如果COMPOSE_FILE_NAME是docker-compose.yml并且服务是工作程序
docker-compose restart worker
用例2:如果文件名为sample.yml且service为worker
docker-compose -f sample.yml restart worker
默认情况下,docker-compose.yml如果我们运行docker-compose命令,docker-compose将查找,否则,我们将使用以下标记来指定特定文件名:-f [FILE_NAME].yml
简单的'docker'命令对'worker'容器一无所知.使用这样的命令
docker-compose -f docker-compose.yml restart worker
docker-compose重新启动单个容器的更多相关文章
- Docker Compose—简化复杂容器应用的利器
Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...
- Docker | Compose创建mysql容器
本文通过Docker Compose来创建mysql容器 在linux服务器上创建文件,用于管理容器 mkdir docker-mysql cd docker-mysql vim docker-com ...
- 单机编排之Docker Compose
当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用docker 单机编排工具docker compose,Docker Compose 是docker容器的一种 ...
- 009.Docker Compose部署及基础使用
一 Docker Compose概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后,使用单个命令,您可以从配 ...
- 阿里云上Docker Compose部署wordpress
先上官方文档: https://docs.docker.com/compose/wordpress/ 我的环境: [root@xyjk1002 ~]# cat /etc/redhat-release ...
- Docker:Docker Compose 详解
Docker Compose 概述与安装? 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架 ...
- 使用docker compose部署服务
谈到微服务的话题,技术上我们往往会涉及到多服务.多容器的部署与管理. Docker 有三个主要的作用:Build, Ship和Run.使用docker compose我们可以在Run的层面解决很多实际 ...
- 基于Docker Compose的.NET Core微服务持续发布
是不是现在每个团队都需要上K8s才够潮流,不用K8s是不是就落伍了.今天,我就通过这篇文章来回答一下. 一.先给出我的看法和建议 我想说的是,对于很多的微小团队来说,可能都不是一定要上K8s,毕竟上K ...
- Docker编排工具Docker Compose的使用
一.安装docker compose 官网推荐方式之一: sudo curl -L "https://github.com/docker/compose/releases/download/ ...
- Docker常用命令、Docker Compose、DockerFile实践
〇.简介 https://hub.docker.com/ 1.架构 2.目录 镜像操作 容器操作 容器运行 Docker示例-MySQL Docker示例-Redis Docker示例-Nacos 使 ...
随机推荐
- Matlab导入多个.mat文件进行画图
目录 0. 实验背景 1. 导入.mat文件存储 1.1 导入.mat文件及作图最简单的方式: 1.2 导入.mat文件及作图的脚本代码 2. plot画图总结 2.1 画散点图 2.1.1 点形状 ...
- Activiti02流程基本功能使用
主要分为一下几个步骤: 1.画图 2.部署流程-把图的信息转入到数据表格中 3.创建流程实例-开始一个流程-实际发起了一个流程 4.执行任务:获取任务+完成任务 1.画图 画了一个简单的流程图,图形文 ...
- charles初级使用
使用charles抓包 一 charles简介 charles 是一个http proxy,是一个中间人,位于客户端Cilent和服务器Server中间. Client发送给Server的请求会经过c ...
- JZOJ 4314. 【NOIP2015模拟11.4】老司机
题目 思路 大意是构造一个数组使它做 \(01\) 背包能表示出所有给定的数 那就暴力枚举每个位置填什么 直到它能表示出所有给定的数 为了保证时间复杂度 我们考虑一个二进制数 \(s\) 表示能构造出 ...
- CF1736C1 Good Subarrays (Easy Version)
题目传送门 思路 给出一种不需要脑子的做法. 首先我们把每个 \(a_i\) 都减去 \(i\),这样原问题就转化为对于每一个左端点 \(i\),寻找一段连续的区间,使得这段区间的最小值加上 \(i- ...
- GIT初学者详细指令学习
参考网站:https://www.liaoxuefeng.com/wiki/896043488029600 基础概念 1.自定义名字和邮箱号 git config --global user.name ...
- ajax请求头
headers: { 'token':token, 'identity':identity, 'Content-Type': 'application/x-www-form-urlencoded' } ...
- corundum:100GNIC学习(三)——恢复工程
前文:(一)https://www.cnblogs.com/shroud404/p/15364812.html (二)https://www.cnblogs.com/shroud404/p/15412 ...
- c# RegistryKey 的相关简单操作(转)
c# RegistryKey 的相关简单操作 以下从'读''写''删除''判断'四个事例实现对注册表的简单操作 1.读取指定名称的注册表的值 private string GetRegistDat ...
- vue学习笔记:环境搭建
一.安装node.js node.js的官方地址为:https://nodejs.org/en/download/ 下载好安装包点击安装,基本就是下一步.下一步.... 安装完成后可以通过以下两种方式 ...