自定义Docker镜像推送到Docker Hub实战

简介: 自定义Docker镜像推送到Docker Hub实战

云原生探索的必经之路—容器化,而容器化目前最主流的技术莫过于Docker了,因为之前也大量的输出过Docker相关的技术博客,如果感兴趣的话可以直接访问专栏:《探索云原生》,按需学习哦。

这篇文章还是从Docker入手,从0开始讲述下如何将自己的Docker镜像上传到Docker Hub,并在Docker Hub上进行管理。下面开始~

那既然是从0开始,我们首先要做的准备工作就是:

(1)准备一台电脑

(2)开机并联网

(3)最好是有一个具备Docker环境的云服务器或能连接互联网的虚拟机

下面开始比较关键的步骤:

1 进入Docker Hub,注册账号

Docker Hub官网:hub.docker.com/

如果已有账号可以直接登录

网络异常,图片无法展示
|


然后我们进入自己的邮箱,点击下面这个按钮进行验证:

网络异常,图片无法展示
|


验证完成之后使用邮箱或用户名和密码进行登录:

网络异常,图片无法展示
|


登录完成之后会让你选择使用的版本,因为其他的版本太便宜了,所以我们可以直接选择个人版:

网络异常,图片无法展示
|


然后就可以进行使用啦~

网络异常,图片无法展示
|


来到我们的个人主页发现比脸都干净,恨不得马上弄来一波自己的Docker镜像,下面我们开始

2 创建自定义Docker镜像

为了方便起见,我们使用一个Go脚本和一个Dockerfile进行对自定义Docker镜像的构建

2.1 编写Go文件并编译

文件内容

package main
import "fmt"
func main(){
  fmt.Println("Hello My Docker Image~")
}
复制代码

操作过程

[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# vim main.go 
[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# go run main.go 
Hello My Docker Image~
[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# go build main.go 
[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# ls
main  main.go
复制代码

2.2 编写Dockerfile

[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# ls
Dockerfile  main  main.go
复制代码

Dockerfile内容:

#依赖镜像(母镜像),可以先使用docker search命令搜索
FROM golang:latest
#作者信息
MAINTAINER YMX "1712229564@qq.com"
#Docker工作目录
WORKDIR $GOPATH/src/go
#将当前目录添加到Docker
ADD ./main $GOPATH/src/go
#编译后在根目录下生成而非./core目录下,最终运行Docker的初始命令
ENTRYPOINT ["./main"]
复制代码

2.3 构建Docker镜像

[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# docker build -t hello_image .
复制代码

3 登录Docker Hub账号并创建仓库

3.1 登录和登出操作

命令:

docker login  # 登录
docker logout # 退出登录
复制代码

网络异常,图片无法展示
|


3.2 创建仓库

比较简单,看图即可:

网络异常,图片无法展示
|


4 将自定义Docker镜像推送到Docker Hub仓库

4.1 推送流程

  • 标记Tag
  • push到远程仓库

语法:

标记

docker tag [镜像id] [网站上的位置]:[自定义Tag名字]
复制代码

push

docker push [网站上的位置]:[自定义Tag名字]
复制代码

演示:

[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# docker images
REPOSITORY                        TAG         IMAGE ID       CREATED         SIZE
hello_image                       latest      fdfc4f9ea526   8 minutes ago   966MB
[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# docker tag fdfc4f9ea526  1712229564/my_image:hello_image
[root@iZ2ze4m2ri7irkf6h6n8zoZ docker_test]# docker push 1712229564/my_image:hello_image
The push refers to repository [docker.io/1712229564/my_image]
89bb49958f16: Pushed 
8cd320a0e7a7: Pushed 
def634b32aed: Mounted from library/golang 
9ff9d9cae9c4: Mounted from library/golang 
2724480adbd2: Mounted from library/golang 
7a7698da17f2: Mounted from library/golang 
d59769727d80: Mounted from library/golang 
348622fdcc61: Mounted from library/python 
4ac8bc2cd0be: Waiting 
复制代码

4.2 结果检查

网络异常,图片无法展示
|



相关文章
|
3天前
|
Java Maven Docker
Spring Boot 构建 Docker 镜像多模式使用详解
Spring Boot 构建 Docker 镜像多模式使用详解
|
2天前
|
JavaScript 前端开发 数据安全/隐私保护
阿里云云效操作报错合集之流水线中获取不到CI_COMMIT_REF_NAME变量,导致docker镜像打包失败,什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
2天前
|
Docker 容器
在 EAS 构建中使用其他 Docker 功能,如自定义 Dockerfile 或多阶段构建
在 EAS 构建中使用其他 Docker 功能,如自定义 Dockerfile 或多阶段构建
|
2天前
|
运维 Serverless 文件存储
函数计算产品使用问题之在利用Docker镜像部署应用时,容器内的应用如何能访问函数计算配置的NAS挂载
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2天前
|
IDE Serverless 开发工具
函数计算产品使用问题之如何使用Docker镜像作为执行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3天前
|
存储 Serverless 对象存储
函数计算产品使用问题之项目打包为docker镜像,该如何部署上去
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5天前
|
Docker 容器
Docker镜像、容器操作
Docker镜像、容器操作
24 0
|
1月前
|
存储 安全 开发者
如何删除 Docker 镜像、容器和卷?
【5月更文挑战第11天】
102 2
如何删除 Docker 镜像、容器和卷?
|
1月前
|
安全 JavaScript Docker
修改docker镜像版本,容器大小缩小10%!
`shigen`,一位专注于Java、Python、Vue和Shell的博主,分享其通过修改Docker镜像版本实现容器瘦身的技巧。将服务从`1.0.0`更新至`1.0.1`,基于Alpine版Docker镜像,容器体积减小至原来的10%。文章展示了问题背景、选择轻量级镜像的原因及步骤,包括Docker镜像版本对比、构建和启动新容器的过程,并证实功能未受影响。`file-server`更新将发布在GitHub上,期待用户试用。一起学习,每天进步!
54 2
修改docker镜像版本,容器大小缩小10%!
|
1月前
|
关系型数据库 MySQL 应用服务中间件
docker镜像、容器数据卷
docker镜像、容器数据卷