zoukankan      html  css  js  c++  java
  • Docker 镜像-管理-导入-导出

    Docker 镜像基本概念

    我们使用的容器都是基于镜像的,镜像是由多层组成的,容器是在镜像上面添加了一个读写层。镜像一般储存在 /var/lib/docker/image/

    多个容器是引用的同一个 镜像,容器不会更改镜像的内容,而是创建一个可写层,并将数据保存在 /var/lib/docker/containers 中。

    Docker 镜像加速

    当我们在使用 Docker 时,我们避免不了拉取镜像,我们默认的镜像源是 registry.hub.docker.com, 是在国外的,我们在国内进行拉取镜像是会比较慢的,我们通常会设置 Docker 中国镜像源或者是 阿里云镜像源,来加速下载。

    网易加速器:http://hub-mirror.c.163.com

    官方中国加速器:https://registry.docker-cn.com

    ustc的镜像:https://docker.mirrors.ustc.edu.cn

    方式一 、使用Docker官方国内镜像源

    地址是 :https://registry.docker-cn.com

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    方式二 、使用阿里云镜像源地址

    获取阿里云镜像源

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://123.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    # 配置开机自启
    systemctl  enabled  docker
    

    方式三、设置163源

    更新比阿里云慢

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    # 配置开机自启
    systemctl  enabled  docker
    

    Docker 镜像 常用命令

    docker search imagename  # 查找镜像
    docker search --filter=stars=0 imagename # 仅显示指定星级以上的镜像,默认为 0,即输出所有镜像。
    docker  search --no-trunc  imagename # 输出信息不截断,默认是截断的。
    docker  search --limit int  imagename # 只返回多少个查询结果,默认为25 
    

    下载镜像 docker pull

    # docker  image  pull =docker pull 下载镜像
    docker image pull centos = docker pull centos # 下载 centos 镜像
    docker image pull -a # 下载在此分支的所有的镜像
    

    列出镜像 docker image ls

    docker image  ls  /  docker images  # 列出所有的镜像
    docker image ls  -a  # 列出所有的镜像
    docker image ls -f dangling=true  # -f 过来,dangling=true 显示没有使用过的镜像
    docker image ls --no-trunc  # 对输出结果太长部分不进行截断,默认截断 加--no-trunc不截断。
    docker image ls -q  # 仅仅输出id信息
    

    查看镜像的历史构建记录 docker image history

    docker image history imagename # 查看镜像的构建过程
    docker image  history -q imagename # 仅仅输出id信息
    docker image history --no-trunc imagename # 对输出结果太长部分不进行截断,默认截断 加--no-trunc不截断。
    

    给镜像打标签 docker image tag

    # 类似于软链接
    docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]  # 一个镜像可以对应多个标签,删除一个标签的镜像时,如果该镜像还对应着对个标签,则该镜像是不会被删除的。
    

    查看镜像的详细信息 docker image inspect

    docker image inspect [OPTIONS] IMAGE [IMAGE...]  # 显示一个或者多个镜像的详细信息。
    

    删除镜像 docker image rm

    docker image rm/rmi/remove 
    
    docker image  rm tagname   # 删除镜像,一个镜像可以对应多个标签,删除一个标签的镜像时,如果该镜像还对应着对个标签,则该镜像是不会被删除的。假设我们一个镜像有a,b,c三个标签,我们删除 c 镜像就只会删除 c标签。当一个镜像只对应一个标签时,那时候删除,是会将镜像删除的。如果是删除id的话,如果该 id 对应的镜像有对应的容器在启动的话, 镜像是删除不了的,如果没有的话,但是有多个标签的话,是会一并删除的。
    
    docker image  rm  -f  tagname   # 强制删除镜像
    
    docker image prune # 移除所有未标记(TAG)的镜像
    		-a  # 移除所有未使用的镜像。
    		-f  # 不发出询问信息
    		
    # image 帮助
    docker image  --help	
    

    Docker 镜像的创建和导出导入

    创建镜像

    • 基于现有的容器进行创建

      我们可以基于已经创建好的容器进行创建镜像。

      docker commit 【options】 container 【REPOSITORY【:TAG】】

      -a ,--author="" : 指定作者信息;

      -c , --change=[] :提交时执行 Dockerfile 命令

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

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

    • 基于Dockerfile 创建

      docker image build

    • 从本地模板导入

      docker image import/load

    导出镜像

    # docker  image  save [options] container 
    -o  # 导出到指定文件
    

    导入镜像

    # docker image  load < 导入文件名  / docker load < 导入文件名
    

    导出容器

    docker  export  container id  > name.tar
    docker export  container id  -o  d.tar
    

    导入容器

    docker  image import  name.tar  tag
    

    注意事项

    镜像中有一个 dangling - 虚悬镜像,这类镜像的 tag 为 none ,这类镜像是如何产生的?

    当我们下载好一个镜像后,这个镜像后续更新了,然后我们 push 了最新的镜像,那么之前的老版本的镜像的tag 也就变成了 none , ,这种镜像就叫做 dangling - 虚悬镜像。这些镜像可以删除,使用 dangling=true 过滤条件即可。docker rmi $(docker images -aq -f "dangling=true"),有个开源工具 docker-gc 可以帮我们定时清理。

  • 相关阅读:
    Inter IPP 跟 Microsoft V100编译器区别
    目标描述(基于区域的描述)
    目标描述(基于边界的描述)
    目标表达(基于区域的表达)
    表达描述(基于变换的表达)
    目标表达(基于边界的表达)
    分割技术扩展
    分水岭分割算法
    借助均移确定聚类中心
    借助过度区选择阈值
  • 原文地址:https://www.cnblogs.com/operationhome/p/11327683.html
Copyright © 2011-2022 走看看