详解Docker镜像的基本操作方法_docker

来源:脚本之家  责任编辑:小易  
目录
一、获取镜像二、运行镜像三、列出镜像四、镜像大小五、删除本地镜像

一、获取镜像

之前我们提到过 Docker 官?提供了?个公共的镜像仓库:Docker Hub,我们就可以从这上?获取镜像,获取镜像的命令:docker pull,格式为: 

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

Docker 镜像仓库地址:地址的格式?般是 <域名/IP>[:端?号],默认地址是 Docker Hub。

仓库名:这?的仓库名是两段式名称,即 <?户名>/<软件名>。对于 Docker Hub,如果不给出? 户名,则默认为 library,也就是官?镜像。?如: 

$ docker pull ubuntu:16.04 
16.04: Pulling from library/ubuntu 
bf5d46315322: Pull complete 
9f13e0ac480c: Pull complete 
e8988b5b3097: Pull complete 
40af181810e7: Pull complete 
e6f7c7e5c03e: Pull complete 
Digest: sha256:147913621d9cdea08853f6ba9116c2e27a3ceffecf3b492983ae97c3d643fbbe 
Status: Downloaded newer image for ubuntu:16.04

上?的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。?镜像名称是 ubuntu:16.04,因此将会获取官?镜像 library/ubuntu 仓库中标签为 16.04 的镜像。 从下载过程中 可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是?层层的去下 载,并?单??件。下载过程中给出了每?层的 ID 的前 12 位。并且下载结束后,给出该镜像完 整的 sha256 的摘要,以确保下载?致性。

二、运行镜像

有了镜像后,我们就能够以这个镜像为基础启动并运??个容器。以上?的 ubuntu:16.04 为例,如果 我们打算启动??的 bash 并且进?交互式操作的话,可以执?下?的命令。

$ docker run -it --rm \ 
ubuntu:16.04 \ 
/bin/bash 
root@e7009c6ce357:/# cat /etc/os-release 
NAME="Ubuntu"
VERSION="16.04.4 LTS, Trusty Tahr" 
ID=ubuntu 
ID_LIKE=debian 
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04" 
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/" 
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

docker run 就是运?容器的命令,具体格式我会在以后进?详细讲解,我们这?简要的说明?下上??到的参数:

-it:这是两个参数,?个是 -i:交互式操作,?个是 -t 终端。我们这?打算进? bash 执??些命 令并查看返回结果,因此我们需要交互式终端。
--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会? 即删除,除??动 docker rm。我们这?只是随便执?个命令,看看结果,不需要排障和保留结 果,因此使? --rm 可以避免浪费空间。
ubuntu:16.04:这是指? ubuntu:16.04 镜像为基础来启动容器。
bash:放在镜像名后的是命令,这?我们希望有个交互式 Shell,因此?的是 bash。

进?容器后,我们可以在 Shell 下操作,执?任何所需的命令。这?,我们执?了 cat /etc/os- release ,这是 Linux 常?的查看当前系统版本的命令,从返回的结果可以看到容器内是 Ubuntu 16.04.4 LTS 系统。最后我们通过 exit 退出了这个容器。

三、列出镜像

$ docker image ls

列表包含了仓库名、标签、镜像 ID、创建时间以及所占?的空间。镜像 ID 则是镜像的唯?标识,?个镜像可以对应多个标签。 

四、镜像大小

如果仔细观察,会注意到,这?标识的所占?空间和在 Docker Hub 上看到的镜像??不同。?如, ubuntu:16.04 镜像??,在这?是 127 MB,但是在Docker Hub显示的却是 43 MB。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的??是?络传输中更关?的流量??。? docker image ls 显示的是镜像下载到本地后展开的??,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候, 更关?的是本地磁盘空间占?的??。

另外?个需要注意的问题是, docker image ls 列表中的镜像体积总和并?是所有镜像实际硬盘消 耗。由于 Docker 镜像是多层存储结构,并且可以继承、复?,因此不同镜像可能会因为使?相同的基 础镜像,从?拥有共同的层。由于 Docker 使? Union FS ,相同的层只需要保存?份即可,因此实际 镜像硬盘占?空间很可能要?这个列表镜像??的总和要?的多。你可以通过以下命令来便捷的查看镜像、容器、数据卷所占?的空间。 

$ docker system df

五、删除本地镜像

如果要删除本地的镜像,可以使?`docker image rm·命令,其格式为:

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

或者

$ docker rmi 镜像名

或者? ID、镜像名、摘要删除镜像,其中,<镜像> 可以是 镜像短 ID、镜像? ID、镜像名 或者 镜像摘要。 ?如我们有这么?些镜像:

$ docker image ls 
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0584b3d2cf6d 3 weeks ago 196.5 MB 
redis alpine 501ad78535f0 3 weeks ago 21.03 MB 
docker latest cf693ec9b5c7 3 weeks ago 105.1 MB 
nginx latest e43d811ce2f4 5 weeks ago 181.5 MB

我们可以?镜像的完整 ID,也称为? ID,来删除镜像。使?脚本的时候可能会?? ID,但是??输?就太累了,所以更多的时候是?短 ID 来删除镜像。 docker image ls 默认列出的就已经是短 ID 了,?般取前3个字符以上,只要?够区分于别的镜像就可以了。 

?如这?,如果我们要删除redis:alpine镜像,可以执?:

$ docker image rm 501 
Untagged: redis:alpine 
Untagged: redis@sha256:f1ed3708f538b537eb9c2a7dd50dc90a706f7debd7e1196c9264edeea521a86d 
Deleted: sha256:501ad78535f015d88872e13fa87a828425117e3d28075d0c117932b05bf189b7 
Deleted: sha256:96167737e29ca8e9d74982ef2a0dda76ed7b430da55e321c071f0dbff8c2899b 
Deleted: sha256:32770d1dcf835f192cafd6b9263b7b597a1778a403a109e2cc2ee866f74adf23 
Deleted: sha256:127227698ad74a5846ff5153475e03439d96d4b1c7f2a449c7a826ef74a2d2fa 
Deleted: sha256:1333ecc582459bac54e1437335c0816bc17634e131ea0cc48daa27d32c75eab3 
Deleted: sha256:4fc455b921edf9c4aea207c51ab39b10b06540c8b4825ba57b3feed1668fa7c7

我们也可以?镜像名,也就是 <仓库名>:<标签>,来删除镜像。

$ docker image rm centos 
Untagged: centos:latest 
Untagged: centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c 
Deleted: sha256:0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a 
Deleted: sha256:97ca462ad9eeae25941546209454496e1d66749d53dfa2ee32bf1faabd239d38

到此这篇关于Docker镜像的基本操作方法的文章就介绍到这了,更多相关Docker镜像内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:Docker 彻底删除私有库镜像的操作Docker和镜像的操作方法给Docker更换国内镜像源操作在docker下删除两个id相同的镜像的操作Docker重命名镜像名称和TAG操作docker利用单个镜像映射到多个端口操作docker常用命令总结之安装、镜像、容器基本操作

  • 本文相关:
  • docker cloud实现部署应用操作详解
  • docker安装并运行rabbitmq的实例代码
  • docker阿里云rocketmq 4.5.1部署流程详解
  • docker部署node.js的方法步骤
  • 基于docker实现redis主从+哨兵搭建的示例实践
  • seata事务服务docker部署的过程详解
  • docker部署lnmp-wordpress的实现步骤
  • docker-compose基于mysql8部署项目的实现
  • ubuntu 16.04安装使用docker教程
  • 在docker中开启sshd操作
  • docker ubuntu镜像能不能安装
  • 怎么把docker镜像文件 复制到主机
  • 如何交互式地创建一个Docker镜像
  • Docker中如何定制运行容器镜像
  • docker官方的mysql镜像是不是性能不好
  • 什么是docker镜像,容器和仓库
  • php7 安装yar 生成docker镜像
  • docker的宿主系统是centos,为什么可以运行ubuntu的镜像
  • 如何创建一个安全的Docker基镜像
  • 如何 进入docker容器 镜像目录
  • redis docker 镜像怎么设置密码
  • docker tomcat 镜像 怎么用
  • kubernetes怎么使用docker中的镜像
  • 如何进入docker的node镜像
  • 关于docker容器,以下说法正确的()A.是一个镜像格式B.一系列标...
  • docker主要用什么操作系统
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云计算技术云其它首页服务器云和虚拟化dockerdocker 彻底删除私有库镜像的操作docker和镜像的操作方法给docker更换国内镜像源操作在docker下删除两个id相同的镜像的操作docker重命名镜像名称和tag操作docker利用单个镜像映射到多个端口操作docker常用命令总结之安装、镜像、容器基本操作docker cloud实现部署应用操作详解docker安装并运行rabbitmq的实例代码docker阿里云rocketmq 4.5.1部署流程详解docker部署node.js的方法步骤基于docker实现redis主从+哨兵搭建的示例实践seata事务服务docker部署的过程详解docker部署lnmp-wordpress的实现步骤docker-compose基于mysql8部署项目的实现ubuntu 16.04安装使用docker教程在docker中开启sshd操作docker.service启动失败:unit not fodocker获取镜像报错docker: error respdocker 给运行中的容器设置端口映射的方法浅谈docker-compose网络设置之networksdocker 清理命令集锦docker容器访问宿主机网络的方法ubuntu vps安装docker报错:cannot coubuntu14.04+docker的安装及使用docker容器如何优雅的终止详解dockerfile中cmd和entrypoint命令详解docker compose入门helloworld的详细过程十分钟学会用docker部署微服务docker容器里面的root权限获取方法docker如何限制容器可用的内存docker gitlab+jenkins+harbor构建持久化平台操作详解docker退出容器不关闭容器的方法docker之修改/etc/default/docker 里的docker_docker?镜像分层及dockerfile?编写技巧docker 使用gpu的过程详解docker实践--部署nodejs应用
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved