Docker的核心概念镜像Images, 容器Containers, 数据卷Volumes

写作时间:2020-01-30

Docker: 2.1.0.2, MySQL: 8, MacOS: 10.15.2,

说明

Docker很容易部署应用和服务在容器Containers中,产生的数据可以存在数据卷Volumes,打包成镜像Images,所以可以容易迁移。这也使本地机器占用了磁盘去存储Images,Containers, Volumes,此文记录如何查询、删除相关数据.

Docker 的元素与编程语言的对象对应关系如下:

Docker 面向对象

镜像Image 类

容器Container 对象

数据卷Volume 数据

1. 清除所有没用的或者挂起的Images, Containers, Volumes, 和 Networks

Docker提供一条简单的命令,清除所有被挂起资源(没有加载到容器Container里面的资源,运行或者停止的Container都不算挂起) — images, containers, volumes, 和 networks:

$ docker system prune

清除没有正在运行的容器Containers的资源:

$ docker system prune -a

2. 镜像Images

显示Docker镜像Images列表

$ docker images

带上-a会显示依赖没有Repository为<none>的Images

$ docker images -a

比如:

% docker images

REPOSITORY          TAG                IMAGE ID            CREATED            SIZE

mysql                8                  3a5e53f63281        2 weeks ago        465MB

mysql                latest              3a5e53f63281        2 weeks ago        465MB

zgpeace/cheers2019  latest              bc105f0ed7c1        4 months ago        4.01MB

redis                latest              63130206b0fa        4 months ago        98.2MB

golang              1.11-alpine        e116d2efa2ab        5 months ago        312MB

1

2

3

4

5

6

7

模糊搜索Images

$ docker images -a | grep “pattern”

比如搜索带sql字样的镜像

% docker images | grep "sql"

mysql                8                  3a5e53f63281        2 weeks ago        465MB

mysql                latest              3a5e53f63281        2 weeks ago        465MB

1

2

3

删除镜像,可以一次删除多个Image(Image ID也可以删除)

$ docker rmi ID_or_Name ID_or_Name

比如笔者删除镜像zgpeace/cheers2019

% docker rmi zgpeace/cheers2019

Untagged: zgpeace/cheers2019:latest

Untagged: zgpeace/cheers2019@sha256:08153d3589af5b3e723b694f4e2d9224b503b6610f3e15974a9856bfbe61bf61

Deleted: sha256:bc105f0ed7c109237601d283b9bd9a3ffe7b51772ae152fc1e9bb2fef76493fc

Deleted: sha256:bdaece6e0d6fe6324c1003d21df95d099d7afa6c053a4e9036d6340da71f82b7

Deleted: sha256:258a9dfb81508874e634dcb3521410822c8977dab334bcc053ef2df2ec1738fd

1

2

3

4

5

6

3. 容器Container

显示正在运行容器

$ docker ps

显示所有容器(包括不运行的)

$ docker ps -a

搜索容器

$ docker ps -a | grep "pattern”

停止运行中的容器

$ docker stop

删除容器

$ docker rm ID_or_Name ID_or_Name

举个例子:

% docker ps

CONTAINER ID        IMAGE              COMMAND                  CREATED            STATUS              PORTS                              NAMES

e9488be5b71d        mysql              "docker-entrypoint.s…"  14 hours ago        Up 14 hours        0.0.0.0:3306->3306/tcp, 33060/tcp  docker-mysql

23:39 zgpeace@zgpeaces-MacBook-Pro /Users/zgpeace

% docker stop e9488be5b71d

e9488be5b71d

23:40 zgpeace@zgpeaces-MacBook-Pro /Users/zgpeace

% docker ps

CONTAINER ID        IMAGE              COMMAND            CREATED            STATUS              PORTS              NAMES

1

2

3

4

5

6

7

8

9

4. 数据卷Volumes

数据卷Volumes是Docker容器Containers推荐的数据持久化方式. 虽然绑定的文件系统bind mounts默认绑定于宿主机器, 数据卷volumes完全通过Docker管理. 数据卷Volumes相对于绑定的文件系统bind mounts有如下优势:

数据卷Volumes更容易迁移.

数据卷Volumes可以通过Docker命令行工具方便管理.

数据卷Volumes适用于Linux 和 Windows 容器containers.

数据卷Volumes在多个容器containers共享数据更安全.

数据卷Volume驱动让你存储数据volumes或者远程机器hosts 或者云服务, 可以加密里面的内容,甚至添加其他方法.

6.新的数据卷Volume可以保留之前容器Container产生的数据.

此外, 数据卷volumes的持久化数据增加,是通过layer的方式叠加起来,从而不增加Container的大小

创建一个数据卷volume:

$ docker volume create my-vol

查看数据卷的配置信息volume:

$ docker volume inspect my-vol

[

    {

        "Driver": "local",

        "Labels": {},

        "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",

        "Name": "my-vol",

        "Options": {},

        "Scope": "local"

    }

]

1

2

3

4

5

6

7

8

9

10

11

查看数据卷Volumes列表

$ docker volume ls

模糊搜索数据卷Volumes

$ docker volume ls | grep volume_name

清除数据卷Volumes

$ docker volume rm volume_name volume_name

5. 参考

https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes

https://docs.docker.com/storage/volumes/

————————————————

版权声明:本文为CSDN博主「AI架构师易筋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zgpeace/article/details/104111248/

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

推荐阅读更多精彩内容