• Docker.02.Docker基础及镜像操作


    Docker基础及镜像操作

    基本概念

    仓库(Repository)

    Docker中的仓库类似于我们经常使用的Maven,只不过Docker仓库中维护的不是jar包,而是一个个的镜像(image)。Docker官方维护的仓库是Docker Hub,我们可以在搜索框中直接搜索我们需要的镜像。如下图所示:
    在这里插入图片描述

    镜像(Image)

    镜像理解起来比较抽象。Docker中文使用手册中的解释为:Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。

    简单来说:一个镜像代表一个应用环境,他是一个只读的文件。如 mysql镜像、tomcat镜像、nginx镜像等

    镜像是一种轻量级的,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时所需的库、环境变量和配置文件。

    容器(Container)

    镜像每次运行之后就会产生一个容器,也就是说容器就是正在运行的镜像。他是可读可写的,不像镜像是只读的。镜像与容器的关系就好比Java中的类和实例的关系:镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

    Hello World

    我们启动Docker虚拟机,上一节中我们已经成功安装了Docker。我们来运行一下官方的Hello World镜像。如下图所示:

    在这里插入图片描述

    • 运行一个镜像使用命令docker run image_name:tag | image_id。如果image_name后面没有跟tag的话默认为latest
    • docker运行镜像是会先从本地仓库中寻找(linux下本地仓库的地址默认为var/lib/docker),如果本地仓库中没有找到会到远程仓库中寻找,然后下载到本地运行

    Docker中镜像的运行过程

    在这里插入图片描述

    Docker的辅助命令

    在前面我们已经用到了一些Docker命令,但是没有设计具体的镜像和容器操作,这里我们把他归类为辅助命令总结如下:

    # 查看docker信息
    docker version | info
    
    • 1
    • 2

    在这里插入图片描述

    # docker帮助信息
    docker --help
    
    • 1
    • 2

    在这里插入图片描述

    镜像操作

    • 查看所有镜像

      # -q:只显示镜像的id
      docker images [-q]
      # 查看名称为image_name的所有镜像
      docker images [image_name] [-q]
      
      • 1
      • 2
      • 3
      • 4

      在这里插入图片描述
      在这里插入图片描述

    • 下载镜像

      # 推荐镜像名:tag方式拉取镜像 如果不跟tag,默认拉取最新版本
      docker pull image_name[:tag]
      
      • 1
      • 2

      在这里插入图片描述

    • 搜索镜像

      # 这里的搜索指的是搜索Docker Hub里面是否存某个名字的镜像,但是不会列出版本号
      docker search image_name
      
      • 1
      • 2

      在这里插入图片描述

    • 删除镜像

      # 正常删除 根据镜像名称或者镜像id删除镜像,必须是没有运行过得镜像
      docker image rm image_name:tag | image_id
      # 强制删除(运行过|中的都可以删除)
      docker image rm -f image_name:tag | image_id
      # 批量强制删除
      docker image rm -f $(docker images tomcat -q)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      我们先启动镜像tomcat:8.0.53,然后执行正常删除,可以看到结果提示unable to remove……。如下图所示:
      在这里插入图片描述
      对于上面的情况我们可以执行强制删除命令,must force的意思就是我们可以在后面加上参数-f,删除结果如下图所示:
      在这里插入图片描述
      对于批量删除,我们需要在下载一个镜像,这里比如是tomcat:7.0.109
      在这里插入图片描述
      然后批量执行删除tomcat的命令,结果如下:
      在这里插入图片描述

  • 相关阅读:
    json/xml/schema
    老机器摇身一变成局域网下低配服务器,并稳定访问GitHub
    定制ASP.NET 6.0的应用配置
    Seata概述
    idea 的复盘历史查看操控记录
    java:Http协议和Tomcat
    【博学谷学习记录】超强总结,用心分享丨人工智能 Python面向对象 学习总结之Python与Java的区别
    ElasticSearch安装详细教程以及相关踩坑
    悟了!阿里p9专家强推的《java虚拟机并发编程》后悔没早看到!
    【ESP 保姆级教程】疯狂Node.js服务器篇 ——案例:ESP8266 + 环境监测 +NodeJs本地服务+文件存储数据 + 钉钉/微信/飞书报警
  • 原文地址:https://blog.csdn.net/bbxylqf126com/article/details/127464332