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基础及镜像操作的主要内容,如果未能解决你的问题,请参考以下文章
Docker02 Docker初识:第一个Docker容器和Docker镜像