前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Docker镜像

使用Docker镜像

作者头像
terrence386
发布2022-07-14 21:52:50
5460
发布2022-07-14 21:52:50
举报

物欲横流,南浔一方净土。静心习字,方悟百态人生。

镜像是 Docker 三大核心概念中最重要的,自Docker诞生之日起镜像就是相关社区最为热门的关键词。

Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在,Docker会尝试先从默认镜像仓库下载(默认使用 Docker Hub 公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库。

获取镜像

可以使用 docker [image] pull 命令直接从 Docker Hub 镜像源来下载镜像。该命令的格式为 docker [image] pull NAME [ :TAG]

其中, NAME 是镜像仓库名称(用来区分镜像),TAG是镜像的标签(往往用来表示版本信息) 。通常情况下,描述 个镜像需要包括 名称+标签

例如, 获取一个 Ubuntu 18.04 系统的基础镜像可以使用如下的命令:

代码语言:javascript
复制
$ docker pull ubuntu: 18. 04

对于Docker镜像来说, 如果不显式指定TAG, 则默认会选择latest标签,这会下载仓库中最新版本的镜像。

代码语言:javascript
复制
$ docker pull ubuntu 

  Using default tag: latest
  latest: Pulling from library/ubun七U
  ...
  Digest:sha256:e27e9d7f7f28d67aa9e2d7540bdc2b33254b452ee8e60f388875e5b7d9b2b696 
  Status: Downloaded newer image for ubun七u:latest

该命令实际上下载的就是 ubuntu:latest镜像。

镜像文件一般由若干层(layer)组成 ,6c953ac5d795这样的串是层的唯一id(实际上完整的id包括256比特,64个十六进制字符组成)。使用docker pull命令下载中会获取并输出镜像的各层信息。当不同的镜像包括相同的层时,本地仅存储了层的一份内容,减小了存储空间。

查看镜像信息

  • 使用images命令列出镜像
代码语言:javascript
复制
$ docker images

我的电脑上没有镜像。镜像信息包括,仓库,标签,镜像ID,创建时间,镜像大小

docker images可以跟子命令。-a 表示列出所有镜像。--digests==true|false表示列出镜像的数字摘要等等。

  • 添加镜像标签

为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任 意添加新的标签。例如,添加一 个新的myubuntu: latest镜 像标签:

代码语言:javascript
复制
$ docker tag ubuntu:latest myubuntu:latest
  • 查看详细信息

使用docker [image] inspect命令可以获取该镜像的详细信息,包括制作者 、 适应架构、各层的数字摘要等:

代码语言:javascript
复制
$ docker [image] inspect ubuntu:18.04
[
  {
    "Id": "sha256:452a96d81c30ale426bc250428263ac9ca3f47c9bf086f876dllcb39cf57aeec",
    " RepoTags": [

        "ubuntu: 18.04",

        "ubuntu:la七est" 
      ],
      ...
  }
]
  • 查看镜像历史

既然镜像文件由多个层组成, 那么怎么知道各个层的内容具体是什么呢?这时候可以使用hisotry子命令,该命令将列出各层的创建信息。

代码语言:javascript
复制
$ docker history ubuntu: 18. 04

查找镜像

使用 docker search 命令可以搜索 Docker Hub 官方仓库中的镜像。语法为 docker search [option] keyword 。支持的命令选项主要包括:-f filter过虑。-format格式化输出内容。-limit限制输出个数。-no-trunc不截断输出结果。

删除镜像

使用 docker rmidocker image rm 命令可以删除镜像,命令格式为 docker rmi IMAGE [IMAGE ... ],其中 IMAGE 可以为标签或 ID。

创建镜像

创建镜像的方法主要有三种:基于已有镜像的容器创建、 基于本地模板导入、 基于Dockerfile创建。

  • 基于已有镜像的容器创建

该方法主要是使用 docker [container] commit命令。-a作者信息。-c提交时执行Dockerfile指令,-p提交时暂停容器运行。-m提交信息。

首先, 启动一个镜像, 并在其中进行修改操作。例如,创建一个test文件,之后退出, 代码如下:

代码语言:javascript
复制
$ docker run -it ubuntu:18.04 /bin/bash
root@a925cb40b3f0:/# touch test
root@a925cb40b3f0:/# exit

容器的 ID 为 a925cb40b3£0 。

此时该容器与原 ubuntu:18.04 镜像相比, 已经发生了改变, 可以使用 docker [container] commit命令来提交为一个新的镜像。提交时可以使用 ID 或名称来指定容器:

代码语言:javascript
复制
$ docker [container] commit -m "Added a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1
  • 基于本地模板导入

基于 Dockerfile 创建是最常见的方式。Dockerfile 是一个文本文件, 利用给定的指令描 述基于某个父镜像创建新镜像的过程。

代码语言:javascript
复制
FROM nginx:alpine

COPY www /usr/share/nginx/html

上传镜像

可以使用 docker [image] push 命令上传镜像到仓库, 默认上传到 Docker Hub 官方仓库(需要登录)。命令格式为 docker [image] push NAMEE [:TAG] [REGISTRY_HOST [ :REGISTRY_PORT] / ]NAME [:TAG ]

第一次上传时, 会提示输入登录信息或进行注册, 之后登录信息会记录到本地~/.docker目录下。

总结

镜像是使用 Docker 的前提,也是最基本的资源 。所以,在平时的Docker使用中, 要注意积累自己定制的镜像文件,并将自己创建的高质量镜像分享到社区中 。

javascript基础知识总结

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaScript高级程序设计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取镜像
  • 查看镜像信息
  • 查找镜像
  • 删除镜像
  • 创建镜像
  • 上传镜像
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档