docker 移除掉运行不正常的container操作

本菜鸟在刚学习docker的时候遇到了这样的问题,记录一下,

当启动一个container的时候,docker ps 看到刚启动的容器有问题,

然后docker logs <container id> 才知道权限不够,未能创建目录。然后想启动,但是当前的container一直处于restarting ,然后docker stop 试了一下,返回成功,然后docker ps 当前container 依然存在,然后docker kill的时候提示容器未启动,docker -help 看了一下,docker rm 移除容器。

但改命令无法移除一个restarting 状态的容器。

需要先docker stop<container id> 然后在docker rm 掉。

当然 启动不成功也是因为没有权限,docker 容器无权限 添加 --privileged=true 参数 。

在docker-compose的时候 docker-compose up会优先使用已有的容器,而不是重新创建容器。需要带上 --force-recreate 参数重新创建容器 docker-compose up -d --force-recreate

本人docker 菜鸟,记录一下自己遇到的问题,勿喷。

补充:Docker删除大量停止的container

1. 怎么做

官方建议的批量删除停止容器使用docker rm $(sudo docker ps -a -q)

千万不要用 docker rm -f $(sudo docker ps -a -q),会删除全部容器的

2. 为什么这么做

1. docker ps -a -q

docker ps 命令的解释:

docker ps -a -q 列出所有容器的数字ID
root@haha:~# docker ps --help
Usage: docker ps [OPTIONS]
List containers
Options:
 -a, --all       Show all containers (default shows just running)
 -f, --filter value  Filter output based on conditions provided (default [])
   --format string  Pretty-print containers using a Go template
   --help      Print usage
 -n, --last int    Show n last created containers (includes all states) (default -1)
 -l, --latest     Show the latest created container (includes all states)
   --no-trunc    Don‘t truncate output
 -q, --quiet      Only display numeric IDs
 -s, --size      Display total file sizes

具体看看,docker ps 是列出容器的命令

- a 列出所有的容器
- q 只显示数字ID 

2. docker rm命令的解释:

root@haha:~# docker rm --help
Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...]
Remove one or more containers
Options:
 -f, --force   Force the removal of a running container (uses SIGKILL)
   --help   Print usage
 -l, --link   Remove the specified link
 -v, --volumes  Remove the volumes associated with the container

- f 强制删除,可以删除正在运行的容器

- v 容器启动后,数据会以volumes的形式存在于硬盘中,即使删除了container数据也不会删除,加上这个参数那么容器执行的数据也会被删除

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 再见 Docker如何5分钟转型 containerd

    Docker作为非常流行的容器技术,之前经常有文章说它被K8S弃用了,取而代之的是另一种容器技术containerd!其实containerd只是从Docker中分离出来的底层容器运行时,使用起来和Docker并没有啥区别,本文主要介绍下containerd的使用,希望对大家有所帮助! containerd简介 containerd是一个工业级标准的容器运行时,它强调简单性.健壮性和可移植性.containerd可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储.容器的执行和管理.存

  • 如何进入、退出docker的container实现

    1 启动docker服务 首先需要知道启动docker服务是: service docker start 或者: systemctl start docker 2 关闭docker服务 关闭docker服务是: service docker stop 或者: systemctl stop docker 3 启动docker某个image(镜像)的container(容器) Docker的镜像称为image,容器称为container. 对于Docker来说,image是静态的,类似于操作系统快照

  • 详解如何获取docker容器(container)的ip地址

    1. 进入容器内部后 cat /etc/hosts 会显示自己以及(– link)软连接的容器IP 2.使用命令 docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> 或 docker inspect <container id> 或 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' c

  • docker 动态映射运行的container端口实例详解

    docker动态映射运行的container端口,最近做项目,对于docker动态映射运行的container端口的资料有必要记录下,以便以后在用到, Docker自带了EXPOSE命令,可以通过编写dockerfile加-p参数方便的映射Container内部端口,但是对于已经运行的container,如果你想对外开放一个新的端口,只能编辑dockerfile然后重新build,有点不太方便. 其实docker本身使用了iptables来做端口映射的,所以我们可以通过一些简单的操作来实现动态映

  • Docker学习之Container容器的具体使用

    容器是 Docker 又一核心概念. 简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用. 关于容器的操作主要有: 创建 启动 停止 导入导出 删除 等等 启动容器 有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态( stopped )的容器重新启动. 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器. 新建并启动 所需要的命令主要为

  • Docker动态给容器Container暴露端口操作

    查看Container的IP地址 docker inspect <container name or id>| grep IPAddress 查看Container的映射的端口 docker port <container name or id> eg. docker port d8dac7399647 docker port hfq-jedi-zxf-eden 用iptables查看容器映射情况 iptables -t nat -nvL iptables -t nat -nvL

  • docker 移除掉运行不正常的container操作

    本菜鸟在刚学习docker的时候遇到了这样的问题,记录一下, 当启动一个container的时候,docker ps 看到刚启动的容器有问题, 然后docker logs <container id> 才知道权限不够,未能创建目录.然后想启动,但是当前的container一直处于restarting ,然后docker stop 试了一下,返回成功,然后docker ps 当前container 依然存在,然后docker kill的时候提示容器未启动,docker -help 看了一下,do

  • Docker 搭建 Tomcat 运行环境的方法

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1 Docker与虚拟机   2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: # uname -r 2.2 安装Docker # yum install d

  • 解决docker安装后运行hello-world报错的问题

    在centos7.3上yum安装了docker V1.13.1 但是在运行:docker run hello-world的时候报错: # docker run docker.io/hello-world container_linux.go:247: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set

  • 一文教会你用Docker打包Python运行环境

    目录 前言 1. Docker基础 1.1 Docker架构 1.2 Docker对象 2. 启动Docker进程并运行镜像 2.1 启动Docker守护进程 2.2 运行镜像 3. 用Docker打包Python环境 参考 总结 前言 虽然Docker作为部署环境打包镜像的工具,和我的科研并没有直接的关系.但我觉得在项目中运用Docker来打包环境依赖也可以大大提高工作效率,于是准备专门学习一下Docker. 1. Docker基础 1.1 Docker架构 Docker使用客户端服务器架构.

  • Docker容器中运行nginx

    nginx简介 Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势.与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强.整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活. 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高.同时Nginx在OpenBSD或FreeBSD

  • 详解在Docker容器中运行Spring Boot应用

    spring Boot简化了Spring应用的开发过程,遵循约定优先配置的原则提供了各类开箱即用(out-of-the-box)的框架配置.另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包是一个可以独立运行的部署单元.基于以上特性,现在普遍认为Spring Boot提供了一种快速构造微服务(Micro-Service)的能力. Docker与Spring Boot Docker是一种Linux容器的实现,Linux容器是基于进程的轻量级资源隔离技术,每一个

  • JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)

    效果图如下所示: 废话不多说了,直接给大家贴js代码了. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>table切换</title> <style type="text/css"> *{ padding: } button{ width: 95px; } .active

  • Docker容器中运行flume及启动不输出运行日志问题

    flume配置文件如下: # Name the components on this agent app1.sources = r1 app1.sinks = k1 app1.channels = c1 # Describe/configure the source app1.sources.r1.type = avro app1.sources.r1.bind = 0.0.0.0 app1.sources.r1.port = 44444 # Describe the sink #a1.sink

  • 使用docker在服务器运行多个php版本

    php7已经出来好一段时间了,众所周知它对性能的提升很大.现在假设我们有台比较老的服务器,系统是centos6,上面运行着一些老旧项目,其默认自带的php版本是5.3 . 虽然说,我们可以升级到php7版本,但是,老旧不兼容php7,我们不能一刀切.最好的方式是php5.3和php7共存.所以,我们可以考虑利用docker来安装其他版本的php,既能保证环境独立,又极少造成性能损耗. 下面以安装php7版本为例,介绍下具体做法. centos6安装docker : yum install -y

随机推荐