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

Posted 潮汐先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

# docker帮助信息
docker --help

镜像操作

  • 查看所有镜像

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


  • 下载镜像

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

  • 搜索镜像

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

  • 删除镜像

    # 正常删除 根据镜像名称或者镜像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)
    

    我们先启动镜像tomcat:8.0.53,然后执行正常删除,可以看到结果提示unable to remove……。如下图所示:

    对于上面的情况我们可以执行强制删除命令,must force的意思就是我们可以在后面加上参数-f,删除结果如下图所示:

    对于批量删除,我们需要在下载一个镜像,这里比如是tomcat:7.0.109

    然后批量执行删除tomcat的命令,结果如下:

以上是关于Docker.02.Docker基础及镜像操作的主要内容,如果未能解决你的问题,请参考以下文章

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

Docker02 Docker初识:第一个Docker容器和Docker镜像

Docker02:Docker核心技术探索 分层联合文件系统

[Docker] 02 Docker三剑客简介

Docker基础命令详解——镜像及容器操作

Docker基础理论及安装部署(镜像与容器的基本操作注解)