写点什么

二、docker 镜像容器常用操作 (让我们用 docker 溜得飞起)

用户头像
极客good
关注
发布于: 刚刚


前言


=================================================================


上篇讲了我们如何安装 docker,现在该我们一展拳脚的时候了。接下来让我们一起学习一下 docker 常见的操作,让我们能够会使用 docker。


基本概念


===================================================================


在讲使用之前,还是先将一下 docker 的基本概念,毕竟上篇就讲了 docker 的安装。一些基本的名词还是需要了解一下的。


docker 最重要的就是镜像和容器了,还有一个仓库。


那什么是 docker 镜像呢?


docker 镜像就相当于一个 root 文件系统,不仅包含容器运行的程序和资源,还包含运行依赖的配置。但是镜像不包含任何动态的数据。


通俗的来讲就像是我们项目运行需要各种依赖和配置以及各种部署。然后我们将这些环境和程序都打包在一起,形成一个可以直接运行的包。就相当于是 docker 镜像,将所有需要的环境都集成在一起。在哪都可以运行。


docker 镜像是分层存储的。docker 镜像在构建的时候是一层层构建的前一层是后一层的基础,使得镜像在复用、定制变得更加简单。也由于镜像是分层存储的,所以镜像显示的 size 大小并不是实际占用的物理内存。因为有很多中间镜像都是公用的。所以实际占用的内存会比显示的 size 要小。



查看容器实际的占用的内存使用


docker system df



现在知道镜像了,那镜像怎么使用呢?


那就是通过容器啦,容器和镜像的关系就像是 对象和实例的关系。也就是说根据镜像创建一个可以直接运行的容器。容器是镜像的具体体现,所以容器就有创建,启动,停止,删除等操作。


镜像的使用


====================================================================


好了,前面知道了什么是 docker 镜像和容器,那现在就我们来看看怎么使用他们吧。


下载镜像




我们安装好 docker 后,怎么获取镜像呢?和 git 拉取一样也是使用 pull.


docker pull


详细的参数使用可以通过docker pull --help来查看


比如我们现在下载一个 nginx 的景象


docker pull nginx


默认会下载 latest 的镜像,表示下载最新的


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


镜像。也可以下载稳定版本的,或者下载指定版本的。


docker pull nginx:stable


docker pull nginx:1.16



查询镜像




我们镜像下载下来了,我们怎么查看我们电脑上有哪些镜像呢?


其实上面我已经用了


docker image ls


或者


docker images 两者的效果是一样的。


具体使用一样的可以使用docker image --help。我们接下来将我们常用的。


查询显示虚悬镜像


docker images -f dangling=true


虚悬镜像是没有作用的,占用内存空间,虚悬镜像怎么来呢?一般是我们下载镜像,依赖一些中间镜像,然后我们删除了下载的镜像,但是只是删除了上层镜像,依赖的镜像没有删除。这样没有依赖的中间镜像就成了虚悬镜像,是可以删除的。


删除虚悬镜像


docker image prune


其他的一些查询操作。


#列出中间层镜像


docker images -a


#列出部分镜像


docker images 仓库名


#过滤


docker images -f since=仓库名


docker images -f before=仓库名


删除镜像




我们现在知道怎么拉取镜像,以及在本地查看镜像,那我们想要删除镜像怎么删除呢?


docker image rm 镜像 id


我们可以通过镜像 id 来删除镜像,并且不用完整的镜像 id ,只要可以做唯一区分就好了。



除了通过镜像 id 来删除镜像,还可以通过以下的几种方式来删除,更过的可以通过docker image rm --help来查看

删除所有仓库名为***的镜像

docker image rm $(docker images -q 仓库名)

删除仓库名在***之前的镜像

docker image rm $(docker images -q -f before=仓库名)


容器的使用


====================================================================


上面讲了镜像的获取查看删除操作,那我们怎么根据镜像来操作相关的容器呢?


创建和启动




前面说了镜像和容器的关系就像是对象和实例的关系。我们一般使用都是使用实例,一样的我们 docker 使用也是使用 docker 容器。


那我们怎么根据镜像来创建容器并使用它呢?


使用


docker run


比如我们前面下载了那么多 Nginx,我们现在启动你 nginx 试试。


docker run -p 8080:80 nginx:stable


-p 是用来指定映射端口的,8080 是我们设置访问那个端口,80 是 Nginx 本身的端口。也可以后台启动

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
二、docker 镜像容器常用操作(让我们用docker 溜得飞起)