查看所有镜像
[root@sail ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 2 months ago 13.3kB
REPOSITORY:镜像名(镜像仓库源)。 TAG:镜像的标签。 IMAGE ID:镜像的 ID。 CREATED:镜像的创建时间。
SIZE:镜像的大小。
只显示镜像的 ID
[root@sail ~]# docker images -q
对镜像进行过滤
[root@sail ~]# docker images java
[root@sail ~]# docker images hello-world
[root@sail ~]# docker images hello-world:latest
搜索镜像
docker pull [参数] 镜像名[:标签]
[root@sail ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11789 [OK]
mariadb MariaDB Server is a high performing open sou… 4488 [OK]
搜索出 Stars 大于 3000 的
[root@sail ~]# docker search mysql -f=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11789 [OK]
mariadb MariaDB Server is a high performing open sou… 4488 [OK]
-f / --filter:根据过滤条件搜索。
拉取镜像
默认下载最新版
[root@sail ~]# docker pull redis
Using default tag: latest # 默认最新版标签
latest: Pulling from library/redis
e5ae68f74026: Pull complete # 分层下载,docker image的核心:联合文件系统
37c4354629da: Pull complete
b065b1b1fa0f: Pull complete
6954d19bb2e5: Pull complete
6333f8baaf7c: Pull complete
f9772c8a44e7: Pull complete
Digest: sha256:2f502d27c3e9b54295f1c591b3970340d02f8a5824402c8179dcd20d4076b796 #防伪签名
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest # 真实地址,docker pull redis 等价于 docker pull docker.io/library/redis:latest
指定版本下载
[root@sail ~]# docker pull redis:5.0
删除镜像
docker rmi [参数] 镜像 [镜像…]
[root@sail ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 2 months ago 13.3kB
[root@sail ~]# docker rmi -f feb5d9fea6a5
Untagged: hello-world:latest
Untagged: hello-world@sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
运行镜像
docker run [参数] 镜像名
参数
–name:指定容器的名称,如果正在运行该名称的容器,会报错。
–rm:用完即删除,通常用来测试。
-d:后台方式运行。
-it:使用交互方式运行,可以进入容器查看内容。
-e:指定运行环境。
-p:随机指定端口。
-p:指定容器的端口,如:-p 8080:8080。还可以有以下写法:
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
运行 centos 镜像
[root@sail ~]# docker run -it centos /bin/bash
Unable to find image 'centos:latest' locally # 检索本地镜像,发现没有该镜像,则去仓库中搜索。
latest: Pulling from library/centos # 开始从仓库中拉取
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
[root@81c83ea42dc0 /]# ls # 由于是以交互方式运行,且进入 /bin/bash 中,此时的路径即为 centos 容器中的 /bin/bash
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
由此可以看出,容器就是一个微型的 Linux 系统。它只保留了最核心的功能和最基本的命令,方便进行操作。