当前位置:首页 » 《随便一记》 » 正文

Docker 实战 Image 补充

22 人参与  2023年05月07日 18:41  分类 : 《随便一记》  评论

点击全文阅读


​​​​​​

作者:半身风雪
上一节:Docker 示例更新
 简介:前面我们总共花费了6节内容,来讲解Docker 的核心知识点,命令等内容,从本节开始,我将和大家一起,正式进入Docker 学习的实战环节。


Docker 实战 Image 补充

目录

​​​​​从Docker Hub 拉取已有镜像

列举所有镜像

查看某个镜像的配置信息

移除镜像

查看所有的镜像操作命令



​​​​​​​

从Docker Hub 拉取已有镜像

Docker 镜像(image)包含了程序代码和程序运行所依赖的所有环境。 Docker 镜像一般存放在镜像仓库服务(Image Registry)里,默认的镜像仓库服务是Docker Hub。可以制作、构建镜像、将镜像上传到镜像仓库服务,从而可以在其他地方从镜像仓库服务里拉取镜像。

 从Docker Hub拉取 helloworld 镜像命令:

$ docker image pull library/hello-world

运行结果如下:

列举所有镜像

Docker 镜像(image)包含了程序代码和程序运行所依赖的所有环境。 Docker 镜像一般存放在镜像仓库服务(Image Registry)里,默认的镜像仓库服务是Docker Hub。 用户可以制作、构建镜像、将镜像上传到镜像仓库服务,从而可以在其他地方从镜像仓库服务里拉取镜像。

一个镜像的名字也叫镜像的仓库名,英文是REPOSITORY,本地列举所有镜像的命令:

$ docker image ls

输出 hello-world 结果:

查看某个镜像的配置信息

 镜像的配置信息查看命令:

$ docker image inspect hello-world

上面命令运行可以看到镜像启动后会立刻执行的命令CMD:

[  {​    "Id": "sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412",​    "RepoTags": [​      "hello-world:latest"​    ],​    "RepoDigests": [​      "hello-world@sha256:13e367d31ae85359f42d637adf6da428f76d75dc9afeb3c21faea0d976f5c651"​    ],​    "Parent": "",​    "Comment": "",​    "Created": "2021-09-23T23:47:57.442225064Z",​    "Container": "8746661ca3c2f215da94e6d3f7dfdcafaff5ec0b21c9aff6af3dc379a82fbc72",​    "ContainerConfig": {​      "Hostname": "8746661ca3c2",​      "Domainname": "",​      "User": "",​      "AttachStdin": false,​      "AttachStdout": false,​      "AttachStderr": false,​      "Tty": false,​      "OpenStdin": false,​      "StdinOnce": false,​      "Env": [​        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"​      ],​      "Cmd": [​        "/bin/sh",​        "-c",​        "#(nop) ",​        "CMD [\"/hello\"]"​      ],​      "Image": "sha256:b9935d4e8431fb1a7f0989304ec86b3329a99a25f5efdc7f09f3f8c41434ca6d",​      "Volumes": null,​      "WorkingDir": "",​      "Entrypoint": null,​      "OnBuild": null,​      "Labels": {}​    },​    "DockerVersion": "20.10.7",​    "Author": "",​    "Config": {​      "Hostname": "",​      "Domainname": "",​      "User": "",​      "AttachStdin": false,​      "AttachStdout": false,​      "AttachStderr": false,​      "Tty": false,​      "OpenStdin": false,​      "StdinOnce": false,​      "Env": [​        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"​      ],​      "Cmd": [​        "/hello"​      ],​      "Image": "sha256:b9935d4e8431fb1a7f0989304ec86b3329a99a25f5efdc7f09f3f8c41434ca6d",​      "Volumes": null,​      "WorkingDir": "",​      "Entrypoint": null,​      "OnBuild": null,​      "Labels": null​    },​    "Architecture": "amd64",​    "Os": "linux",​    "Size": 13256,​    "VirtualSize": 13256,​    "GraphDriver": {​      "Data": {​        "MergedDir": "/var/lib/docker/overlay2/cad20b84d6740bbb0dfbe96058268e56843e19e4703a1d328a730ad68605f0e7/merged",​        "UpperDir": "/var/lib/docker/overlay2/cad20b84d6740bbb0dfbe96058268e56843e19e4703a1d328a730ad68605f0e7/diff",​        "WorkDir": "/var/lib/docker/overlay2/cad20b84d6740bbb0dfbe96058268e56843e19e4703a1d328a730ad68605f0e7/work"​      },​      "Name": "overlay2"​    },​    "RootFS": {​      "Type": "layers",​      "Layers": [​        "sha256:e07ee1baac5fae6a26f30cabfe54a36d3402f96afda318fe0a96cec4ca393359"​      ]​    },​    "Metadata": {​      "LastTagTime": "0001-01-01T00:00:00Z"​    }  }]

移除镜像

可以通过命令docker image rm删除不用的镜像,我们先通过命令查看有哪些镜像。

$ docker image ls

可以看到我们当前所有的镜像:

如果镜像没有被启动过,直接可以使用下面的命令删除成功:(删除 docker/getting-started 镜像)

$ docker image rm cb90f98fd791 

运行如下图:

但是如果镜像被启动了,就会报错:

我们可以通过docker ps命令查看被启动过的镜像状态。

可以看到,其中

横向的红框是ID为09d01ed9156b的镜像启动后的container(参考下一节)的状态

纵向的红框是所有启动的container的当前状态,可以看到图里的都处于Exited的退出状态。

查看所有的镜像操作命令

除了上面介绍的一些命令,我们也可以查看 docker image 的所有命令:

$ docker image

运行结果如下:


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/61456.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1