Docker 阿里云镜像仓库CR使用实践

2024-02-03 14:04

本文主要是介绍Docker 阿里云镜像仓库CR使用实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

一、使用容器镜像,查看镜像,创建,推送,拉取阿里云镜像

CR镜像管理(阿里云容器镜像服务(Container Registry))

登录实例

未创建的镜像名称也可以push、docker的私有仓库需要提起创建镜像名称,才能push

1、子账户

账户:阿里云账户全名
registry 密码:xxx

docker login --username=humx@genekang registry.cn-shenzhen.aliyuncs.com

2、主账户

获取临时密码或固定密码后,可通过密码登录镜像服务实例:
1)获取访问域名,基于当前的网络环境,选择对应的专有网络、公网或经典网络域名。
2)在终端中输入访问凭证,登录Registry实例

docker login --username=cloud@genekang.com registry.cn-shenzhen.aliyuncs.com
镜像密码:xxx
Email: cloud@genekang.com
WARNING: login credentials saved in /root/.docker/config.json

阿里云私有个人镜像

  • 专有网络:registry-vpc.cn-shenzhen.aliyuncs.com
  • 公网:registry.cn-shenzhen.aliyuncs.com

查看镜像 docker images

创建一个名为myubuntu的容器

docker run -ti --name myubuntu -d docker.io/ubuntu

查看容器 docker ps

docker commit :从容器创建一个新的镜像

-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。docker commit -a 'humx' -m 'it is test' 0d0492fa24e2 myubuntu:v1

在mybuntu:v1镜像推送到docker hub仓库中去,这里使用阿里云的容器服务


首先: docker login --username=cloud@genekang.com registry.cn-shenzhen.aliyuncs.com
推送: docker push humx/myubuntu:v1
报错:
The push refers to a repository [docker.io/humx/myubuntu]
An image does not exist locally with the tag: docker.io/humx/myubuntu
改下镜像名字: docker tag a31c9c5a390d humx/myubuntu:v1
镜像列表如下:(注意:下面的v1的tag标签可以不打,默认是latest)
humx/myubuntu                          v1                  a31c9c5a390d        6 minutes ago       79.6 MB
myubuntu                               v1                  a31c9c5a390d        6 minutes ago       79.6 MB
再次推送:docker push humx/myubuntu:v1
The push refers to a repository [docker.io/humx/myubuntu]
1970ccf556b5: Preparing 
059ad60bcacf: Preparing 
8db5f072feec: Preparing 
67885e448177: Preparing 
ec75999a0cb1: Preparing 
65bdd50ee76a: Waiting 
denied: requested access to the resource is denied
提示报错是因为: 登录的账户名 和 推送的镜像名称 humx/myubuntu:v1 不匹配
修改镜像名字:
docker tag humx/myubuntu:v1 registry.cn-shenzhen.aliyuncs.com/humx/test:v1
重新push到镜像仓库中:(时间会稍长点)
docker push registry.cn-shenzhen.aliyuncs.com/humx/test:v1

在本机删除这个镜像:

docker rmi a31c9c5a390d

直接删除重启镜像是会报错:

Error response from daemon: conflict: unable to delete a31c9c5a390d (must be forced) - image is referenced in multiple repositories

应该先docker tag改名前的镜像,使用镜像名称删除。(一般在docker tag镜像改名后,最好删除改名前的镜像)

docker rmi myubuntu:v1
Untagged: myubuntu:v1
Untagged: registry.cn-shenzhen.aliyuncs.com/humx/test

拉取阿里云镜像:

docker pull registry.cn-shenzhen.aliyuncs.com/humx/test:v1

镜像加速器设置:

修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

国内连接docker官网很慢修改docker中配置,添加对应中国docker加速器

vi  /etc/docker/daemon.json
{"registry-mirrors": ["https://registry.docker-cn.com"],"live-restore": true
}

如果是docker 的官网提供的仓库这么玩:

首先是登录docker hub (用户名:humx 密码:*******)

[root@docker-test1 ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (wangshibo): humx
Password:
Login Succeeded

登录自己的Docker Hub,即https://hub.docker.com/

登录后,在Repositories里面就可以看到自己在上面推送的镜像humx/myubuntu:v1了,这是个对外的镜像,可以在网络上下载。

在Docker hub上可以看到这个镜像的下载命令(注意下载时跟上tag标签,如果是latest的默认tag可以不跟)

也可以直接在Docker hub上删除这个镜像(Repositories-镜像-Settings-delete)

二、怎么看镜像里边的内容?

1.docker镜像保存在 /var/lib/docker/ 目录下

镜像都存在: /var/lib/docker/containers

通过命令: docker ps -a 来查看容器的id,然后进入到某个容器进行项目里边。

2.查看镜像详情:

docker inspect humx/myubuntu:v1

3.查看镜像的历史记录:

docker history humx/myubuntu:v1

4.容器的开启关闭

docker stop <容器 ID>

docker restart <容器 ID>

这篇关于Docker 阿里云镜像仓库CR使用实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/674380

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完