docker 删除所有未启动的容器_docker系列学习之容器理解

前言

上一篇文章说到了docker的镜像以及常用命令,在docker的使用过程中,一般都是先拉取镜像,然后在镜像的基础上创建并启动容器来运行我们的项目。故此本篇主要是说下容器的创建和相关命令以及简单使用。

534032c15469aef5b9a5e6aae460b7e3.png

新建并启动容器

在docker我们可以通过docker run来新建并启动一个容器,该命令下面有很多选项。下面来列举一些常用的命令:

-d:表示后台运行

-P:随机端口映射

-p:指定端口映射

-t:在新容器内指定一个伪终端或终端。

-i:允许你对容器内的标准输入 (STDIN) 进行交互。

–network:指定网络模式 有以下4个参数可选

【–network=bridge:默认选项,表示连接到默认的网桥】

【–network=host:容器使用宿主机的网络】

【–network=container:NAME_or_ID:告诉Docker让新建的容器使用已有容器的网络配置】

【–network=none:不配置该容器的网络,用户可自定义网络配置】

示例1

echo 

示例2

docker run -d -p 80:80 nginx

-d:表示后台运行
-p:表示将容器端口80映射到宿主机端口80

注意:每次docker run都会新建并启动一个容器。

03b3ce256a4e89852fc0ec78097cfa79.png

列出容器

使用docker ps可以列出所有运行中的容器,执行命令后可以看到如下的内容

95b90e390b55473f03b9cfff0422a124.png

列出所有的容器,包括停止的容器可以使用docker ps-a,查出的列字段含义如下

CONTAINER_ID:表示容器ID。

IMAGE:表示镜像名称。

COMMAND:表示启动容器时运行的命令。

CREATED:表示容器的创建时间。

STATUS:表示容器运行的状态。Up表示运行中,Exited表示已停止。

PORTS:表示容器对外的端口号。

NAMES:表示容器名称。该名称默认由Docker自动生成,也可使用docker run命令的–name选项自行指定。

命令格式:docker ps [options]

--all,-a default:false 列出所有容器,包括未运行的容器,默认只展示运行的容器

--filter, -f 根据条件过滤显示内容

--format 通过Go语言模板文件展示镜像

--last, -n default:-1   显示最近创建n个容器(包含所有状态)

--latest, -l default:-1   显示最近创建的容器(包含所有状态)

--no-trunc default:fallse 不截断输出

--quiet, -q default:false 静默模式,只展示容器的编号

--size, -s default :false 显示总文件大小

示例

docekr ps -n 5

0337271a73154c594bbc7a70f7bcabc6.png

停止容器

使用docker stop

--time, -t default:10 强制杀死容器前等待的时间,单位是秒

示例

stop 

强制停止容器使用docker kill

--signal, -s default:KILL 向容器发送一个信号

示例

kill 

启动停止容器

docker run 是新建并启动一个容器,而docker start是启动一个已经创建的容器。

命令格式

docker 

--attach, -a default:false 连接STDOUT/STDERR并转发信号

--checkpoint 从该检查点还原

--checkpoint-dir 使用自定义的检查点存储目录

--detach-keys 覆盖断开容器的关键顺序

--interactive, -i default:false 连接容器的STDIN

示例:

docker start 4a30b910f793/容器名称    启动容器

重启容器命令格式

docker 

--time, -t default:10 关闭容器前等待的时间,单位是秒

示例:

stop 然后再

进入容器

在某些场景下面我们需要进入到容器进行相关操作

1、使用docker attach命令进入到容器

docker attach 4a30b910f793

在使用attach命令时,如果是多个窗口同时进入容器,很容易发生阻塞。

2、使用nsenter进入容器

nsenter工具包含在util-linux 2.23或更高版本中。为了连接到容器,我们需要找到容器第一个进程的PID,可通过以下命令获取

docker inspect --format 

获得pid后就可以进入容器了

nsenter --target 

示例

root@localhost ~]# docker inspect --format 

3、使用docker exec进入到容器

exec -it 容器id /bin/bash

06a85347d7e447857b3eb6a5fe10b437.png

删除容器

使用docker rm可以删除指定容器

--force, -f default:false 通过SIGKILL信号强制删除正在运行中的容器

--link, -l default:false 删除容器间的网络连接

--volumes, -v default:false 删除与容器关联的卷

示例

4a30b910f793 删除指定的容器 如果删除运行中的容器则用-f参数

导出容器

导出容器指的是将容器导出为一个压缩包

export [OPTIONS] CONTAINER

示例

export docker 

导入容器

使用docker import 命令即可从归档文件导入内容并创建镜像

docker 

--change, -c 将Dockerfile指令应用到创建的镜像

--message, -m 为导入的镜像设置提交信息

示例

import nginx2.tar nginx   将打包的nginx容器导入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值