zoukankan      html  css  js  c++  java
  • 使用Docker镜像

    镜像是Docker三大核心组件中最为重要的。

    Docker运行容器之前,需要在本地存在对应的镜像,如果镜像没有保存到本地的话,Docker会尝试从默认仓库下载(Docker Hub).

    获取镜像:

    镜像是容器运行的前提

    使用 docker pull  Name[:TAG]

    NAME:是镜像仓库的名称(区分镜像)

    TAG:是镜像的标签(表示版本信息)

    直接从Docker Hub来下载镜像

    获取python3.6 的镜像

    dockers pull python:3.6

     如果不显示指定的TAG,则会选择latest标签,会下载仓库中最新版本的镜像。

    如果从非官方的仓库中下载,需要在仓库名称前指定完整的仓库地址

    例如从:网易蜂巢镜像源来下载python3.6,可以使用:

    docker pull hub.c.163.com/public/python:3.6 

    查看镜像  

    使用images命令列出镜像

    docker images可以列出本地主机上已有的镜像的基本信息。

     关键字段信息:

    REPOSITORY :表示来自于那个仓库。

    TAG:镜像的标签信息,用来标注不同的的版本信息。

    IMAGE ID  :镜像唯一的ID

    CREATED:镜像的创建时间,也是镜像的最后更新时间。

    SIZE:镜像的大小,优秀的镜像往往体积都比较小。

    镜像ID的信息十分重要 ,它唯一标识了镜像。

    images子命令主要支持如下选项

    -a, --all=true|false:列出所有的镜像文件(包括临时文件),默认为False

    --digests=true|false:列出数字的镜像摘要值

    -f, --filter-[]过滤出镜像,如dangling=true只显示没有被 使用的镜像。

    2. 使用tag命令添加镜像标签。

    为了方便使用特定的镜像,可以使用docker tag命令来为本地的镜像添加新的标签

    比如添加一个新的myubuntu:last镜像标签

    docker tag ubuntu:last myubuntu:latest

    注意:

    使用tag命令创建出来的镜像标签和被指向的镜像ID相同 。区别只有别名不同

    使用inspect命令查看详细信息。

    详细信息会返回一个json格式的消息,使用参数  -f 

    docker  inspect  -f {{".Architect"}}

    查看历史镜像history

    查找镜像

    使用docker search可以查找远端仓库中共享的镜像。用法为docker search term,支持的参数:

    • --automated=true|false:仅显示自动创建的镜像,默认为否;
    • --no-trunc=true|false:输出信息不极端显示,默认为否;
    • -s, --stars=X:指定仅显示评价为指定星际以上的镜像,默认为0,即输出所有的镜像。

    例如:查找所有自动创建的评价为1+的带nginx关键字的镜像;

    docker search --automated -s 3 nginx

    删除镜像

    1. 使用标签删除镜像

    使用docker rmi 命令可以删除镜像,命令格式为docker rmi IMAGE[IMAGE...],其中IMAGE可以是 标签,也可以是ID 

    例如要删掉myubuntu:latest镜像,可以使用docker rmi myubuntu:latest

    当同一个镜像拥有多个标签的时候,docker rmi只删除该镜像多个标签中指定的标签而已,并不影响镜像文件。

    2. 使用镜像ID删除镜像

    使用docker rmi 命令,并且在后面跟上镜像的ID,会先尝试 删除所有指向该镜像的标签,然后删除镜像文件本身。

    注意:

    当有要删除的镜像创建的容器存在时,镜像文件默认时无法删除的;使用docker ps -a 可以看见本机上存在的所有容器;

    强制删除镜像使用-f参数:docker rmi IMAGE -f;

    创建镜像

    创建镜像的方法有三种:

    • 基于已有镜像的容器创建
    • 基于本地模板导入
    • 基于dockerfile创建

    1. 基于已有的容器创建

    该方法主要是使用 docker commit 命令

    命令格式为docker commit [options] CONTAINER [REPOSITORY[:TAG]]

    -a --author='  ':作者信息

    -c  --change=[]:提交的时候执行dockerfile 指令

    -m --message= '  ':提交消息;

    -p --pause=true: 提交时暂停容器执行

    创建一个新的镜像

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

    docker run -it  ubuntu:14.01 /bin.bash

    touch test

    exit

    执行完之后会出现容器的原始ID,记住ID

    此时,现在的容器和原来的容器镜像相比,已经发生了变化,现在使用docker commit 命令来提交一个新的镜像,提交的时候可以使用ID或者名称来指定容器。

    docker commit -m "add a new file " -a 'qqq' test/ID:0.1

    执行完之后会看到新镜像的ID信息,现在查看的话,会发现镜像已经创建完成。

    2.基于本地模板导入

    可以从操作系统模板文件导入一个镜像,使用docker import 命令。

    格式:docker import [OPTIONS] file|URL|-[REPOSITORY[:TAG]]

    要直接导入一个镜像,可以使用openVZ提供的模板来创建https://wiki.openvz.org/Download/template/precreated

    例如下载ubuntu-14.04-86_64minimal.tar.gz | docker import -ubuntu:14.04

    存出和载入镜像

    可以使用docker savedocker load 来存出和载入镜像

    1. 存出镜像

    如果要导出镜像到本地文件,可以使用docker save命令

    docker save -o ubuntu_14.0.tar ubuntu:14.0

    2.载入镜像

    可以使用docker load 将到处的tar文件再导入本地镜像库,例如从文件 ubuntu_14.0.tar导入镜像到本地镜像列表

    docker load --input ubuntu_14.0.tar或docker load < ubuntu_14.0.tar

    上传镜像

    使用docker push 命令上传镜像到 仓库,默认上传到Docker Hub(需要登录)

    docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT /]NAME[:TAG]]

     在Docker Hub注册完可以上传自制的镜像,user上传本地的test:latest,可以先添加新的标签,user/test:latest,然后用docker push上传镜像

    docker tag test:latest user/test:latest

    docker push user/test:latest

    • 添加到短语集
       
      • 没有此单词集:英语 -> 中文(简体)...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集:英语 -> 中文(简体)...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集:英语 -> 中文(简体)...
         
      • 创建新的单词集...
    • 拷贝
    • 添加到短语集
       
      • 没有此单词集:英语 -> 中文(简体)...
         
      • 创建新的单词集...
    • 拷贝
  • 相关阅读:
    chaos —— 混沌
    《菊与刀》original 的阅读
    《菊与刀》original 的阅读
    十六进制(二进制)编辑器
    十六进制(二进制)编辑器
    Hopfield 神经网络及稳态性的证明
    Hopfield 神经网络及稳态性的证明
    OpenGL(一)绘制圆、五角星、正弦曲线
    NYOJ 8 一种排序(comparator排序)
    oc 第五天(内存管理)
  • 原文地址:https://www.cnblogs.com/wqzn/p/11870427.html
Copyright © 2011-2022 走看看