• docker入门(二)使用docker镜像


    三、使用docker镜像

     1.1.获取镜像

    docker [image] pull NAME[:TAG]

    直接从docker hub镜像源上来下载镜像

    1.1.2.栗子

    获取ybuntu 18.04系统镜像

    docker pull ubuntu:18.04
    

    注意:如果不加后面的tag,那么会选择最新的latest标签,这会下载最新的镜像,一般来说,最新的是会随时变化的,不稳定的,所以不要在生产环境中使用

    docker pull ubuntu

    从非官方下载镜像,需要完整的仓库地址

    docker pull hub.c.163.com/public/ubuntu:18.04
    

    1.1.3.pull 子命令包括

    -a ,--all-tags=true|false:获取所有

    --disable-content-trust:取消校验

    --registry-mirror=proxy_URL:镜像获取加速

    2.1.查看镜像信息

    docker images 或者 docker image ls

    2.1.2.images子命令

    -a , --all=true|false:列出所有

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

    -f , --filter=[]:过滤列出的镜像

    --format="TEMPLATE":控制输出格式

    --no-trunc=true|false:对输出太长信息是否截取

    -q , --quite=true|false:仅输出ID信息

    2.2.使用tag添加镜像标签

    docker tag ubuntu:latest myubuntu:latest

    2.3.使用inspect查看详细信息

    docker inspect ubuntu:18.04

    2.3.1.查看的信息是以json格式返回的消息,如果要获取其中一项内容,用 -f 来制定

    2.3.2.栗子

    获取镜像的Architecture

    docker inspect -f {{".Architecture"}} ubuntu:18.04

    2.4.使用history查看镜像历史

    docker history ubuntu:18.04

    3.1.搜索镜像

    docker sreach keyword

    3.1.2.支持的参数

    -f , --filter filter:过滤输出内容

    --format string:格式化输出内容

    --limit int:限制结果格数

    --no-trunc:不截断输出结果

    3.1.3.栗子

    3.1.3.1.搜索官方提供的带nginx关键字的镜像

    docker sreach --filter=is-official=true nginx
    

    3.1.3.2.搜索所有收藏数超过4的关键字报错tensorflow的镜像

    docker srerch --filter=stars=4 tensorflow
    

    4.1.删除和清理镜像

    4.1.1.使用标签删除镜像

    docker rmi IMAGE
    docker image rm IMAGE
    其中IMAGE可以为标签或者ID
    docker rmi myubuntu:latest

    4.1.2.支持参数

    -f , -force:强制删除

    -no-prune:不要清理未带标签的父镜像

    4.2.1.使用镜像ID删除镜像

    docker rmi ID

    注意:在删除镜像时,如果有容器使用了该镜像,我们应该先用docker rm 删除依赖该镜像的容器,再来删除镜像

    4.3.1.清理镜像

    docker在使用一段时间后,会遗存一些临时镜像文件和无用的文件,通过docker image prune命令来清理

    4.3.2.支持选项

    -a , -all:删除所有无用镜像,不光是临时镜像

    -filter filter:只清理过滤镜像

    -f , -force:强制删除镜像

    docker image prune -f

    5.1.创建镜像

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

    docker commit、import、build

    5.1.1.基于已有容器创建

    docker commit命令

    5.1.2.主要参数

    -a , --author=" ":作者信息

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

    -m , --message=" ":提交信息

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

    5.1.3.栗子

    运行一个镜像,创建一个test文件,提交为新镜像

    创建文件
    docker run -it ubuntu:18.04 /bin/bash
    touch test
    exit
    ###这里退出时需要记住容器ID:a925cb40b3f0
    创建新镜像test:0.1
    docker commit -m "add file" -a "test user" a925cb40b3f0 test:0.1

    5.2.1.基于本地模板导入

    docker import

    5.2.2.栗子

    假如下载了一个ubuntu-18.01的模板压缩包,导入

    cat ubuntu-18.01-x86_64-minimal.tar.gz | docker import - ubuntu:18.04

    5.3.1.基于Dockerfile创建

    5.3.2栗子

    基于debian:stretch-silm镜像那幢python3环境,构成一个python:3镜像

    编辑Dockerfile文件

    FROM debian:stretch-slim
    
    LABEL version="1.0" maintainer="docker user <docker_user@github>"
    
    RUN  apt-get update && 
            apt-get install -y python3 && 
            apt-get clean && 
            rm -rf /var/lib/apt/lists/*
    

    执行docker bulid进行编译

    docker bulid -t python:3

    6.1.存出和载入镜像

    6.1.1.存出镜像

    docker save命令,支持参数-o、-output string

    6.1.2.栗子

    导出镜像ubuntu:18.04为ubuntu_18.04.tar

    docker sae -o ubuntu_18.04.tar ubuntu:18.04

    6.2.1.载入镜像

    docker load命令,支持参数-i、-input string

    6.2.2.栗子

    导入文件ubuntu_18.04.tar到本地镜像列表

    docker load -i ubuntu_18.04.tar
    或者
    docker load < ubuntu_18.04.tar

    导入成功后,所有相关元数据信息都会保留(包括标签等),与导出的源镜像一致。

    7.1.上传镜像

    docker push命令上传本地镜像到仓库,默认到docker hub官方仓库

    格式为:docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]

    7.1.2栗子

    给本地镜像test:latest添加新标签,上传到仓库

    docker tag test:latest user/test:latest
    
    docker push user/test:latest
    

     注意:第一次上传时需要登录注册账号的信息,之后会记录到本地的~/.docker目录下。

     8.1.本章小结

    学习了关于docker镜像的命令的使用方法,包括获取、查看、搜索、删除、创建、存出和载入、上传等。不清楚的也可以使用docker image help查看帮助。

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

  • 相关阅读:
    入门级: WinForm 下的 ComboBox,ListBox 的使用 (一)
    C#:谨慎 DateTime.Now 带来的危险
    HTML5 小游戏审核通过,请各位有兴趣的朋友帮忙投票!谢谢。
    基于fpga的单线激光雷达数据处理
    左右法则-复杂指针解析
    智能指针(auto_ptr和shared_ptr) 转
    iphone游戏引擎
    C++对象和内存
    让你的代码变的更加强大
    Class Loader
  • 原文地址:https://www.cnblogs.com/xysr-tom/p/12488219.html
Copyright © 2020-2023  润新知