文章目录
一、镜像名称
首先来看下镜像的名称组成:
- 镜名称一般分两部分组成:
[repository]:[tag]
。tag
一般是指版本。 - 在没有指定tag时,默认是latest,代表最新版本的镜像
如下图:这里有一个mysql:5.7的镜像,冒号前的mysql就是一个repository,而冒号之后的5.7就是tag(版本),合一起就是镜像名称,代表5.7版本的MySQL镜像。
因此 mysql:5.7 和 mysql:5.6 是两个不同的版本。
二、镜像命令
Docker镜像的操作无非就是CURD。
获取镜像一般有两种做法:
- 从本地获取,你会需要一个名为Dockerfile的文件,然后使用
docker build
命令把它构建成一个镜像,这一部分后期会去专门学习。 - 除了从本地构建镜像以外,大多数情况下会使用
docker pull
命令从 Docker Registry 服务器里去拉取镜像。docker pull
命令可以从私服拉,也可以从公共的Docker Registry服务拉,例如DockerHub。
使用
docker images
命令查看镜像,
images
就是镜像的意思。
使用
docker rmi
删除镜像。
rmi(remove images)
,后面跟上 镜像名称 或者 镜像id
将镜像分享给别人也有两种方式:
- 将镜像推送到镜像服务器中,例如公司的私服,这种方式需要用到
docker push
命令。 - 将镜像用U盘拷给同事,使用
docker save
命令将镜像保存成一个压缩包,此时同事就可以拿着U盘来拷这个压缩包了。拷过去后,使用docker load
命令将压缩包加载为镜像。
查看帮助文档:
,此时会出现关于docker的所有命令。docker --help
如果我想知道
docker images
命令是做什么的,就可以使用:
docker images --help
, 它的作用就是:列出所有的镜像,并且还有各种各样的参数,每个参数什么含义这里都有说明。
三、案例1:拉取、查看镜像
需求:从DockerHub中拉取一个nginx镜像并查看
1)首先去镜像仓库搜索nginx镜像,比如DockerHub
在它的上面有一个标识:Official Image。证明它是官方的正版镜像,所以我们就使用它。
点进去后,可以看见它有很多不同的版本,如果不指定版本的时候,它就是默认最新版(latest)
在网页的最右侧,浏览器给出了示例的命令,
docker pull nginx
就是在拉取nginx的镜像,但它没有指定版本,所以默认就是最新版本
2)根据查看到的镜像名称,拉取自己需要的镜像,通过命令:docker pull nginx,这个拉取速度会比较慢
3)通过命令:docker images 查看拉取到的镜像,后面可以跟参数也可以不跟
每一个镜像都会有一个自己的唯一id。创建时间是3周前,大小只有133M
四、案例2-保存、导入镜像
需求:利用docker save将nginx镜像导出磁盘,变成一个压缩包,然后再通过load加载回来
1)利用docker xx --help命令查看docker save和docker load的语法
例如,查看save命令用法,可以输入命令:
docker save --help
结果:保存一个或多个镜像到tar文件当中(也就是一个压缩文件当中)。Usage后面给出的是命令的示例,IMAGE:你要导出的是哪个镜像,写的是镜像的名字。Options:选项。
-o
:输出,写入到一个指定的文件当中,如果文件不存在,将来它会自动创建
命令格式:
docker save -o [保存的目标文件名称][镜像名称]
2)使用docker save导出镜像到磁盘
运行命令:保存到
nginx.tar文件
中,这个文件不存在,将来它会自动创建
PS:镜像名由两部分组成:
repository:tag
docker save -o nginx.tar nginx:latest
结果如图:
3)导入:使用docker load加载镜像
先删除本地的nginx镜像:(remove images)
docker rmi nginx:latest
然后通过
docker images
查看nginx:latest 这个镜像是否还存在
然后运行命令,加载本地文件:
docker load -i nginx.tar
-i
:input,你要读哪个文件,从 tar 存档文件读取,而不是从 STDIN 读取
-q
:quiet(安静的,即不打印日志)
结果:
然后再通过
docker images
查看
nginx:latest
这个镜像是否加载回来。
版权归原作者 洛上言 所有, 如有侵权,请联系我们删除。