Docker镜像操作
1.寻找镜像
在 docker hub https://hub.docker.com 即可找到想要的镜像。
docker search [OPTIONS] NAME
# OPTIONS
-f,--filter:根据提供的条件过滤输出
--limit int:最大搜索结果数(默认25)
--no-trunc:不截断输出
example:
# 搜索官方提供的带 nginx 关键字的镜像
docker search --filter=is-official=true nginx
# 搜索所有收藏数超过 4 的关键词包括 nginx 的镜像
docker search --filter=stars=4 nginx
2.拉取镜像
docker pull NAME[:TAG]
example:
# 拉取最新镜像
docker pull centos
# 指定tag拉取
docker pull centos:7
3.镜像信息
docker images [OPTIONS] [REPOSITORY[:TAG]]
# OPTIONS
-a:列出本地所有的镜像(含中间映像层)
-q:只显示镜像ID
--no-trunc:不截断输出
--digests:显示镜像的摘要信息
常用 docker images
4.删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
# OPTIONS
-f:强制删除
example:
# 删除单个
docker rmi -f 镜像ID
# 删除多个
docker rmi -f 镜像ID1 镜像ID2
# 删除全部
docker rmi -f $(docker images -qa)
5. 给镜像打tag
创建一个新的镜像关联到原镜像,相当于起了别名
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
example:
docker tag centos:7 my/centos:7
6.提交镜像
提交容器副本使之成为一个新的镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# OPTIONS
-m="提交的描述信息"
-a="作者<邮箱>"
example:
# 1.下载nginx镜像到本地并成功运行
docker run -it -p 8888:80 nginx
# 2.访问 ip:8888 可以看到页面中有Welcome to nginx!
# 3.修改nginx index.html中的 Welcome to nginx! 改为 Welcome to mynginx!
# 4.以修改过后的nginx容器为模板commit一个新的镜像
docker commit -m "update nginx index.html" -a "pd<123456@qq.com>" 13e430464b35 my/nginx:1.0
# 5.启动新镜像并和原来的对比
docker run -it -p 8888:80 nginx
# 显示Welcome to nginx!
docker run -it -p 7777:80 my/nginx:1.0
# 显示Welcome to mynginx!
7.阿里云镜像仓库
阿里云镜像仓库可以托管我们的镜像。
-
进入容器镜像服务https://dev.aliyun.com/search.html
-
创建命名空间
-
创建镜像仓库
-
在镜像仓库管理中即可看到具体使用步骤
-
登录阿里云Docker Registry
docker login --username=xx registry.cn-shenzhen.aliyuncs.com
-
从Registry中拉取镜像
docker pull registry.cn-shenzhen.aliyuncs.com/yolo_pd/test:[镜像版本号]
-
将镜像推送到Registry
docker push registry.cn-shenzhen.aliyuncs.com/yolo_pd/test:[镜像版本号]
-
选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。 如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shenzhen.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
-
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry
docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/yolo_pd/test:[镜像版本号]
-