Docker基础 常用命令、docker命令、镜像命令

目录

Docker常用命令

容器帮助命令

 镜像命令

镜像是什么?镜像讲解:

如何得到镜像:

docker镜像加载原理:UnionFS(联合文件系统)

docker search [镜像:标签]        搜索镜像

docker pull [镜像:标签]        拉取镜像 

docker pull [镜像:标签]       指定版本拉取

docker rmi [镜像:标签]或[镜像ID]        删除镜像

docker rmi -f $(docker images -aq)        删除所有镜像




Docker常用命令

容器帮助命令

docker --help        可以查看docker所有命令
docker 命令 --help 可以查看该命令的使用方式和参数

docker version    #显示docker的版本信息
docker info       #显示docker的系统信息,包括镜像和容器数量
docker 命令 --help  #帮助命令

帮助文档的地址:docker | Docker Documentationhttps://docs.docker.com/engine/reference/commandline/docker/

官网帮助文档会有docker里的命令,点击相应命令就可以看到这个命令的使用方法和作用。 

 

 镜像命令

镜像是什么?镜像讲解:

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

所有应用,直接打包docker镜像,就可以直接跑起来!

如何得到镜像:

1、从远程仓库下载

2、别人拷贝给你

3、自己制作一个镜像 DockerFile

docker镜像加载原理:UnionFS(联合文件系统)

我们下载的时候看到一层层的就是这个联合文件系统!

UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,他支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,Union文件系统是docker镜像的基础。镜像可以通过分层来继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

docker images        查看本地主机上所有的镜像

例:不会使用的docker命令,或者想知道该命令有什么参数的话,可以使用:

docker images --help

[root@localhost ~]# docker images --help

Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show image IDs

中文翻译:
列出图片

选项:
-a、 --全部显示所有镜像(默认隐藏中间镜像)
--摘要显示摘要
-f、 --根据提供的条件过滤输出
--使用Go模板格式化字符串打印镜像
--no trunc不截断输出
-q、 --仅显示镜像ID

其中docker images -a和-q参数比较常用,也可以-aq一起写:
-a      全部显示所有镜像
-q      仅显示镜像ID
[root@localhost ~]# docker images

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   6 months ago   13.3kB


#解释:

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

docker search [镜像:标签]        搜索镜像

例:搜索docker hub库里的都有什么版本的mysql镜像

[root@localhost ~]# docker search mysql
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                            MySQL is a widely used, open-source relation…   12408     [OK]
mariadb                          MariaDB Server is a high performing open sou…   4780      [OK]
mysql/mysql-server               Optimized MySQL Server Docker images. Create…   918                  [OK]


解释:

STARS          收藏,镜像的收藏人数,数字代表该镜像被收藏的数量
DESCRIPTION    镜像的描述,可以根据描述知道该镜像的功能


可选项:
--filter       过滤
使用方法;
--filter=STARS=3000     以收藏量为过滤条件,过滤出收藏量在三千以上的镜像


实操:
[root@localhost ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   12408     [OK]
mariadb   MariaDB Server is a high performing open sou…   4780      [OK]

过滤后只剩下收藏量在三千以上的镜像了

docker pull [镜像:标签]        拉取镜像 

[root@localhost ~]# docker pull mysql
Using default tag: latest        #如果不写tag,默认就是latest,最新版
latest: Pulling from library/mysql
f003217c5aae: Pull complete    #分层下载,docker images 的核心,联合文件系统
65d94f01a09f: Pull complete
43d78aaa6078: Pull complete
a0f91ffbdf69: Pull complete
59ee9e07e12f: Pull complete
04d82978082c: Pull complete
70f46ebb971a: Pull complete
db6ea71d471d: Pull complete
c2920c795b25: Pull complete
26c3bdf75ff5: Pull complete
9ec1f1f78b0e: Pull complete
4607fa685ac6: Pull complete
Digest: sha256:1c75ba7716c6f73fc106dacedfdcf13f934ea8c161c8b3b3e4618bcd5fbcf195    #签名信息,防伪标志。
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest    #真实地址

解释:
Using default tag: latest    使用默认标签,最新的。默认下载最新版本的镜像
tag    标签
latest   最新的
docker.io/library/mysql:latest    #真实地址,等价于docker pull mysql

注:
拉取镜像也可使用真实地址,这里
docker pull mysql == docker.io/library/mysql:latest

docker pull [镜像:标签]       指定版本拉取

指定版本下载一定要docker hub库里有的版本

[root@localhost ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
f003217c5aae: Already exists  #已经存在
65d94f01a09f: Already exists
43d78aaa6078: Already exists
a0f91ffbdf69: Already exists
59ee9e07e12f: Already exists
04d82978082c: Already exists
70f46ebb971a: Already exists
ba61822c65c2: Pull complete
dec59acdf78a: Downloading [=====>                                             ]  12.87MB/108.6MB
0a05235a6981: Download complete
c87d621d6916: Download complete


#解释:
Already exists 已经存在

docker的核心,分层下载,将需要拉取的镜像分为多层,逐一下载。
若后续下载的其他版本的镜像有分层是一样的,就不会下载了,会显示该分层已经存在。共用这个分层,联合文件系统。

docker rmi [镜像:标签]或[镜像ID]        删除镜像

rmi的详解rm=removal (去除)   i=images (镜像)

可加参数: -f        强制删除镜像     docker rmi -f 镜像

[root@localhost ~]# docker rmi mysql
Untagged: mysql:latest
Untagged: mysql@sha256:1c75ba7716c6f73fc106dacedfdcf13f934ea8c161c8b3b3e4618bcd5fbcf195
Deleted: sha256:667ee8fb158e365450fc3f09712208fe44e9f1364a9b130fed95f3f4862f8a63
Deleted: sha256:daba3b5cd1b725f259d5d59049c7011f6a20f2e7e4782b873cadeedbc1a4f122
Deleted: sha256:407a68a397de3c8e4da2ccd388f27c795519414cc9319f674e7b9a492cd8514b
Deleted: sha256:6967db79cb8031d7e505dd82c91c6426e84c6ad2098d06c1c090485886bc1c63
Deleted: sha256:3dcc0f922d11309b2e4870d5f42c5005f086c9b9c1e128ed2b712b65fa79a5c9
Deleted: sha256:ae5d4ab2734d5c27069212b2690dc2c7ac4cd85ee5e122607cb175f7fe908914
Deleted: sha256:610784bcaae50e999566928bdec7a4e146fe075d9e487bde0a228c99013ff1d9
Deleted: sha256:ccebaff04ea21a9e2df07f9d5af5c47ccd141cd3590f4d45784b6075e7c17ded
Deleted: sha256:716203221cd982fc07b80efda0c53a759ecfd69b2d93d4e8adf5fa094351372e
Deleted: sha256:fbd4939b3eb58642a07003e076acc3d0d8140797f61139ce4d3645790d9c8b51
Deleted: sha256:88f8458b4b2030b229b9757bd4061bce58b65e831a0bba8fa71aa8b3f87db630
Deleted: sha256:f2f431ab3ddc1460d300cd86016cc03b7611b56f04bd88370da3d378b3d10aea
Deleted: sha256:c1065d45b8722a4385f2ee26116e1859e8083400ee00d2beff3fdd5225bfeee9

删除镜像时也是逐一删除镜像的分层

docker rmi -f $(docker images -aq)        删除所有镜像

[root@localhost ~]# docker rmi -f $(docker images -aq)
Untagged: hello-world:latest
Untagged: hello-world@sha256:bfea6278a0a267fad2634554f4f0c6f31981eea41c553fdf5a83e95a41d40c38
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412


#解释

rmi   # remove images   移除镜像
-f    # 强制删除
$()   #传递参数,将括号里的参数传递给该命令

docker images -aq    #查看所有docker镜像的ID
-a    #查看所有
-q    #只看镜像ID

docker rmi -f $(docker images -aq)    #将所有的镜像ID传递给删除镜像这个命令,这个命令会依次执行删除。

猜你喜欢

转载自blog.csdn.net/weixin_53466908/article/details/124161034