• 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的命令,结果如下:
      在这里插入图片描述

  • 相关阅读:
    ChatGPT 入门指南:与 AI 进行愉快互动的秘诀大揭秘!
    海事无人机解决方案
    华硕 A550C 安装 CentOS7 后无法连接 wifi 问题排查解决
    李宏毅机器学习第一课(结尾附作业模型详细分析)
    dubbo泛化调用
    保姆级教程:Linux (Ubuntu) 部署流光卡片开源 API
    Git 回退代码的两种方法对比
    pH值、EC控制器
    Github上都在疯找的京东内部“架构师进阶手册”终于来了
    LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索Indexes for information retrieve
  • 原文地址:https://blog.csdn.net/bbxylqf126com/article/details/127464332