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:[镜像版本号]
      
posted @ 2020-09-26 16:56    阅读(116)  评论(0编辑  收藏  举报