Docker镜像管理
2020-08-17 本文已影响0人
jan29
以下内容转载于Breeze
原博客地址:https://www.cnblogs.com/breezey/
五、镜像管理
1、镜像命名规范
无论我们对镜像做何种操作,首先它得有个名字。我们在前面使用docker run来运行容器的时候,就需要传递一个镜像名称,容器基于该镜像来运行。
一个完整的镜像名称由两部分组成:
<image name> = <repository>:[tag]
其中repository包含如下内容:
[Docker Registry地址/][项目目录/]<名称>
所以一个完整的镜像命名如下:
[Docker Registry地址/][项目目录/]<名称>:[标签]
示例:
hub.breezey.top/op-base/openresty:1.11.2.4
hub.breezey.top/op-base/openresty-php:1.11.2.4-7.0.27
mysql:5.6
ubuntu
当没指明镜像tag时,默认为latest,但latest没有任何特殊含义,在docker hub上很多repository将latest作为最新稳定版本的别名,但这只是一种约定,不是强制规定,一个repository可以有多个tag,而多个tag也可能对应同一个镜像
2、镜像基本操作
1、获取镜像
docker pull centos:6.6 #直接从docker hub获取镜像
docker pull dl.dockerpool.com:5000/centos:6.6 #从dockerpool获取镜像
2、查看镜像信息
docker images
docker inspect centos:latest #获取镜像的详细信息
3、为镜像创建tag
docker tag centos:latest dl.dockerpool.com:5000/centos:6.6
4、搜索镜像
docker search mysql #搜索mysql镜像
5、 删除镜像(注:如果镜像有容器生成,需要先删除容器)
#如果一个镜像有多个tag,只会删除指定的tag,镜像本身不会删除,如果docker rmi后指定镜像ID,则所有tag都会被删除
docker rmi centos:6.6
# 删除无标签镜像(即为none)
docker rmi $(docker images -q --filter "dangling=true")
6、导出和载入镜像
# 将本地镜像导出
docker save -o centos_6.6.tar centos:6.6
# 将本地文件导入镜像
docker load --input centos_6.6.tar
7、通过docker commit提交一个新镜像
docker commit -m "Add a new file" -a "Breeze" a925cb40b3f0 test #使用a925cb40b3f0容器生成一个名为test的镜像
-a:指定作者
-m:相关说明信息
-p:提交时暂停容器运行