容器化技术——Docker专题三 | 镜像、容器常用命令

本文章是在网易云课堂的课程学习中编写,部分图片从网易云课堂ppt引用

【Docker镜像操作】

1、拉取镜像

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

  • 选项:可以通过 docker pull --help 命令看到
  • 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub。
  • 仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。

比如:docker pull ubuntu:16.04,没有给出 Docker镜像仓库地址,将会从 Docker Hub 的 library/ubuntu 仓库中获取镜像

image

2、运行镜像

有了镜像后,我们就能以这个镜像为基础,启动并运行一个容器。以上面拉取的 ubuntu:16.04 为例

docker run -it --rm ubuntu:16.04 bash

  • -it:这是两个参数。-i:交互式操作, -t:终端。这样可以进入bash 执行命令并查看返回结果
  • -rm:容器退出后随之将其删除。默认情况下,退出的容器并不会立即删除,除非手动docker rm。如果不需要排障和保留结果,则可以使用--rm 避免浪费空间
  • ubuntu:16.04:以ubuntu:16.04 镜像为基础来启动容器
  • bash:放在镜像名后的是命令,使用bash可以有个交互式 Shell

执行后,进入到容器中,可以执行命令并查看结果。exit 可以退出容器

image

3、列出镜像

3.1 查看仓库名、标签、镜像 ID、创建时间 以及 所占用的空间

docker image ls

docker images

image

不能将docker image ls 列表中的镜像体积总和作为所有镜像实际硬盘消耗。
Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。
由于Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间可能比这个列表中的镜像大小总和要小的多。

3.2 查看镜像、容器、数据卷所占用的空间

docker system df

image

3.3 虚悬镜像(仓库名、标签均为none的镜像)

一般来说,虚悬镜像已经失去了存在的价值,是可以删除的

docker image ls -f dangling=true #查看虚悬镜像

  • -f:即--filter 是一个过滤器参数

docker image prune #删除虚悬镜像

3.4 中间层镜像

中间层镜像是其它镜像所依赖的镜像,默认的 docker image ls 列表中只会显示顶层镜像。中间层镜像不能随意删除,否则惠导致上层镜像丢失依赖而出错

docker image ls -a

3.5 列出部分镜像

指定仓库名和标签,即可列出特定的某个镜像,还可以加上过滤器参数 -f

docker image ls ubuntu #列出ubuntu镜像

docker image ls ubuntu:16.04 #列出 ubuntu:16.04 镜像

docker image ls -fsince=mongo:3.2 #列出在 mongo:3.2 之后建立的镜像

4、删除本地镜像

4.1 单个删除

docker image rm [选项] <镜像1> [<镜像2> ...]

  • <镜像>可以是镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要

比如:docker image rm -f 501

4.2 批量删除

可以使用 docker image ls -q 来配合使用 docker image rm,这样可以成批的删除希望删除的镜像

docker image rm $(docker image ls -q ubuntu)

或者删除所有在 ubuntu:16:04 之前的镜像:

docker image rm $(docker image ls -q -f before=ubuntu:16.04)

【Docker容器操作】

1、启动容器

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另一种是将在终止状态(stopped)的容器重新启动。

docker run ubuntu:16.04 /bin/echo 'Hello world' #基于镜像启动容器,并输出‘Hello world’

docker container start 或者 docker start #启动已终止容器

docker run -it ubuntu:16.04 /bin/bash #启动一个 bash 终端,允许用户进行交互

  • -t :让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
  • -i :让容器的标准输入保持打开

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载

  • 利用镜像创建并启动一个容器

  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层

  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去

  • 从地址池配置一个 ip 地址给容器

  • 执行用户指定的应用程序

  • 执行完毕后容器被终止

2、后台运行容器

通过添加-d参数,可以让Docker在后台运行,而不是直接把执行命令的结果输出到当前宿主机下

docker run -d hello-world #不会输出日志,只会打印容器id

docker logs 容器id #查看后台的输出结果

注: 容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关。

3、停止运行的容器

docker container stop 容器id #终止运行中的容器

docker container ls -a #查看终止状态的容器

docker container start 容器id #启动终止状态的容器

docker container restart 容器id #将一个运行态的容器终止,然后重启启动

此外,当 Docker 容器中指定的应用终结时,容器会自动终止

4、进入容器

docker exec -it 容器id /bin/bash

5、导出和导入容器

5.1 导出容器快照到本地文件

docker export 容器id > 文件名.zip

比如:docker export 7691a814370e > ubuntu.tar

5.2 导入容器

cat 导入文件名.zip | docker import - 镜像用户/镜像名:镜像版本

比如:cat ubuntu.zip | docker import - test/ubuntu:v1.0

也可以通过指定 URL 或者某个目录来导入,比如:

docker import http://example.com/exampleimage.tgz example/imagerepo

6、删除容器

docker container rm ubuntu:16.04 #删除终止状态的容器。如果要删除一个运行中的容器,可以添加 -f 参数

docker container prune #批量清理所有处于终止状态的容器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容