Docker容器技术:Docker container概述

103 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

container(容器)概述

container是通过image去创建的,先有image,然后去创建container。

container在image上面新增了一层可读可写的layer(运行和安装等操作)

可以类比面向对象中:类和实例的关系

类:抽象的object---image

实例:object实例化---container

Image负责app的存储和分发,container负责运行App

实际的操作

我们现在基于之前创建的image去创建container

docker run xxx

接着我们可以通过执行docker container ls 来看一下当前dokcer中所有container的状态,包含之前已经运行的container:

image.png

这里可以通过-a 来展示那些已经结束掉的容器,例如我们之前run的hello-world(运行完就退出了,不是一个常驻进程的容器)。

上面COMMAND列就是我们之前Dockerfile写的CMD。这也是容器创建之后默认执行的命令!

下面我们看一下centos这个复杂一点的image:

image.png

这里我们发现直接run这个好像没有反应,但ls之后我们发现有一个已经退出的container,只是运行完就退出了。

交互式运行容器

这里介绍一种交互式运行容器的方法:

image.png

我们切一个shell,然后看一下ls:

image.png

这里其实在第一个shell我们就进入了container了,可以在里面进行读写操作了,例如:

image.png

之后可以通过exit退出,此时的容器也退出了,ls不会有:

image.png

删除退出的容器

删除退出的容器,直接docker+回车看一下命令:

image.png

这边有一系列管理的命令,这里我们可以通过docker container再浏览对应的命令:

image.png

接着我们可以通过rm这个命令来删除:

image.png

还可以通过container ls -aq来列出所有container的ID,然后通过一个$引用来进行rm,就可以全部清理了:

命令简写

  • docker rm = docker container rm

  • ps -a = container ls -a

  • images = image ls

  • rmi = image rm