Docker镜像容器常用命令总结

Docker概述

网址:Docker中文网站
镜像(Image):就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。就好似Java中的类和对象,类就是镜像,容器就是对象。可以大到一个OS,小到一个Mysql。
容器(container): Docker利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例(一个镜像在端口号不冲突的情况下可以启动多个容器,容器对外提供服务)。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。可以看作是简易版本的Linux环境和运行在其中的程序。
仓库(repository):仓库是集中存放镜像文件的场所,每个仓库中又包含了多个镜像,每个镜像有不同的标签,仓库分为公开仓库(Public)和私有仓库(Private)两种形式最大的公开仓库是DockerHub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等
服务(Service):可以看做是容器的上层包装。

Docker常用命令

在这里插入图片描述

帮助命令

(1)docker version #显示Docker版本信息

(2)docker info #显示Docker系统信息,包括镜像和容器数

(3)docker --help #帮助命令

镜像

(1)docker images #列出本地主机上的镜像
在这里插入图片描述

解释:

REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGEID 镜像的ID
CREATED 镜像创建时间
SIZE 镜像大小

可选项

-a:列出本地所有镜像
-q:只显示镜像id
–digests:显示镜像的摘要信息

(2)docker search #搜索镜像
在这里插入图片描述

(3)docker pull #下载镜像(不写tag,默认是latest)
在这里插入图片描述
docker pull mysql:5.7 #指定版本下载

(4)docker rmi #删除镜像
docker rmi -f 镜像id #删除单个
docker rmi -f 镜像名:tag 镜像名:tag #删除多个
docker rmi -f $(docker images -qa) #删除全部

容器

(1)创建启动容器
在这里插入图片描述
在这里插入图片描述

(2)列出所有运行的容器
在这里插入图片描述

(3)退出容器
exit #容器停止退出
ctrl+P+Q #容器不停止退出

(4)启动停止容器
在这里插入图片描述

(5)删除容器
docker rm 容器id #删除指定容器
docker rm -f $(docker ps -a -q) #删除所有容器
docke rps -a -q|xargs docker rm #删除所有容器

其他命令

(1)后台启动容器
在这里插入图片描述

(2)查看日志
docker logs -f -t --tail 容器id
在这里插入图片描述

(3)查看容器中运行的进程信息,支持 ps 命令参数
docker top 容器id

(4)查看容器/镜像的元数据
docker inspect 容器id

(5)进入正在运行的容器
第一种:docker exec -it 容器id /bin/bash
第二种:docker attach 容器id
在这里插入图片描述
区别:
exec 是在容器中打开新的终端,并且可以启动新的进程
attach 直接进入容器启动命令的终端,不会启动新的进程

(6)从容器内拷贝文件到主机上
命令:docker cp 容器id:容器内路径 目的主机路径(目的主机上执行操作)
在这里插入图片描述

(7)容器Commit镜像
docker commit 提交容器副本使之成为一个新的镜像!
命令: docker commit -m =“提交的描述信息” -a=“作者” 容器id 要创建的目标镜像名:[标签名]
在这里插入图片描述

(8)容器数据卷
1. 为了能保存数据在Docker中我们就可以使用卷!让数据挂载到我们本地!这样数据就不会因为容器删除而丢失了!
2. 卷就是目录或者文件,存在一个或者多个容器中,由docker挂载到容器,但不属于联合文件系统,卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷.
3. 就是容器的持久化,以及容器间的继承和数据共享!
在这里插入图片描述
在这里插入图片描述

(9)Docker镜像加载原理(了解)
1. UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加。
2. docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。
3. 为什么Docker镜像要采用这种分层的结构呢?
最大的好处,莫过于是资源共享了!比如有多个镜像都从相同的Base镜像构建而来,那么宿主机只需在磁盘上保留一份base镜像,同时内存中也只需要加载一份base镜像,这样就可以为所有的容器服务了,而且镜像的每一层都可以被共享。查看镜像分层的方式可以通过 docker image inspect 镜像:[版本] 命令。
4. Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部!这一层就是我们通常说的容器层,容器之下的都叫镜像层!

猜你喜欢

转载自blog.csdn.net/qq_39182939/article/details/112429785