Docker hub 镜像仓库使用|学习笔记

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 快速学习Docker hub 镜像仓库使用

开发者学堂课程【深入解析 Docker 容器化技术Docker hub 镜像仓库使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/659/detail/10952


Docker hub 镜像仓库使用

 

内容介绍

一、docker 仓库

二、举例说明

 

一、docker 仓库

本次进行docker 仓库的讲解。在之前讲的案例中存在一些问题,比如162服务器当中有镜像 mytomcat,而163服务器也需要镜像 mytomcat,当时讲解的是通过scp 拷贝到163服务器,如果100台服务器都需要 mytomcat 镜像,是不可能一台一台进行拷贝的,所以可以将 mytomcat 镜像放到仓库中,其他的服务器需要镜像就从仓库中下载,与 Java 中 maven 仓库相同需要 jar 包就根据仓库中拿取之前讲过镜像仓库默认是 docker hub,也讲过阿里云,docker hub 的话下载速度是比较慢的,因为服务器是在国外的,在实际开发中是使用阿里云,除此之外如果想省钱可以自己搭建私有仓库,下面进行 Docker hub 镜像仓库的讲解。

可以将自己创建的镜像推送到 docker hub 当中,如果要将制作的镜像推送到docker hub 中,首先需要注册 docker hub,打开 docker hub 网站,在访问过程中可以感觉得到访问速度很慢,打开网站后注册账号进行创建仓库,注意在将镜像推送上来时要设置镜像的标签,否则推送不到仓库,网页创建仓库页面如下:

image.png

右边蓝色文本框内说明了如何进行推送,第一步为对镜像设置标签,然后再执行docker push 进行推送。

 

二、举例说明

这里举一个例子说明,如:

docker tag local- image:tagname new-repo:tagname (设置tag)

docker tag 进行设置镜像标签,image 为本地镜像,tagname 为标签名称,new-repo 为新的产户,tagname 为标签名,然后进行登录 docker hub,再将镜像推送上来。

1、设置镜像标签

在本地镜像中可以给镜像设置一个标签,下面先进行查看本地镜像,如:

[root@localhost rw-test]# docker images

REPOSITORY  TAG  IMAGE ID       CRATED      SIZE

rw_nginx    latest  cbd149510b76 8 minutes ago 440MB

mytomcat   latest  505be517d555 4 seconds ago 797MB

centos      latest  67fa590cfc1c   4 weeks ago  202MB

可以看到本地一共有三个镜像,而且镜像内存大小都比较大,所以这里示例就不推送本机的镜像了,那么接下来下载一个hello-world镜像,如:

[root@localhost rw-test]# docker pull hello-world

拉取成功后进行查看镜像,如:

[root@localhost rw-test]# docker images

hello-world latest fce289e99eb9  8 mo… 1.84KB

可以看到镜像大小只有1.84KB,所以等到推送时会比较快。

然后继续对镜像设置一个标签,如:

[root@localhost rw-test]# docker tag hello-world:latest 108001509033/test -hello-world:v2

语句 docker tag 表示为设置镜像标签,对本地的 hello-world 中叫做 latest 的镜像进行设置标签,这里需要注意后面跟上的是自己的仓库名,这里示例为登录账号的仓库名,将镜像改名为test -hello-world,为了防止与以前的仓库冲突,这里版本号为v2,然后进行回车执行一次。此时再次进行查看,发现test-hello-world的标签为v2,大小还是为1.84KB,如:

[root@localhost rw-test]# docker images

108001509033/test -hello-world v2 fce289e99eb9 8 …1.84KB

紧接着将镜像进行推送,如:

[root@localhost rw-test]# docker push 108001509033/test -hello-world:v2

errors :

denied: requested access to the resource is denied

unauthorized: authentication required

此时回车推送后出现报错,意思为无效认证,也就是如果要推送到 docker hub 中去,是需要登录的。

2、登录 docker hub

通过 docker login 进行登录,然后输入账号密码,如:

[root@localhost rw-test]# docker login

Username: 108001509033

Password :

Login succeeded

执行结果如上则登录成功。

3、推送镜像

登录后再次执行推送,如:

[root@localhost rw-test]# docker push 108001509033/test -hello-world:v2

The push refers to repository [docker. io/108001509033/test-hello-world]

如上则推送执行成功。而到底推送成功没有可以通过刷新网页进行查看,刷新后查看页面如下: 

image.png

可以看到页面中出现推送的v2版本,所以在这个里面成功的将镜像推送到  docker hub 中,而后期其他服务器需要镜像的话也是可以直接下载的。以上就是 docker hub 镜像仓库的使用。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
12天前
|
Docker 容器
将本地的应用程序打包成Docker镜像
将本地的应用程序打包成Docker镜像
|
12天前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
30 9
|
1月前
|
缓存 Linux 网络安全
docker的镜像无法下载如何解决?
【10月更文挑战第31天】docker的镜像无法下载如何解决?
1323 29
|
12天前
|
存储 缓存 运维
Docker镜像采用分层存储,每层代表镜像的一部分,如基础组件或应用依赖,多层叠加构成完整镜像
Docker镜像采用分层存储,每层代表镜像的一部分,如基础组件或应用依赖,多层叠加构成完整镜像。此机制减少存储占用,提高构建和传输效率。Docker还通过缓存机制提升构建和运行效率,减少重复工作。文章深入解析了Docker镜像分层存储与缓存机制,包括具体实现、管理优化及实际应用案例,帮助读者全面理解其优势与挑战。
32 4
|
2月前
|
缓存 监控 持续交付
|
29天前
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。
|
1月前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
129 2
|
1月前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
120 1
|
1月前
|
存储 Java 开发者
成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享
本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
|
1月前
|
存储 缓存 Java
Java应用瘦身记:Docker镜像从674MB优化至58MB的实践指南
【10月更文挑战第22天】 在容器化时代,Docker镜像的大小直接影响到应用的部署速度和运行效率。一个轻量级的Docker镜像可以减少存储成本、加快启动时间,并提高资源利用率。本文将分享如何将一个Java基础Docker镜像从674MB缩减到58MB的实践经验。
73 1