自定义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官网:https://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 结果检查

~

相关文章
|
4天前
|
存储 安全 Ubuntu
Docker 镜像与 Docker 容器的区别
【8月更文挑战第27天】
42 5
|
4天前
|
运维 Ubuntu Shell
掌握Docker容器的创建:从镜像到实例
【8月更文挑战第27天】
42 4
|
2天前
|
物联网 Serverless API
函数计算产品使用问题之怎么部署Docker镜像进行lora训练
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2天前
|
运维 前端开发 API
实战 web 应用 Docker 镜像解耦交付
实战 web 应用 Docker 镜像解耦交付
|
3天前
|
Kubernetes Linux 开发者
【实战秘籍】从零开始:用.NET与Docker打造现代化容器化应用之旅
【8月更文挑战第28天】本文详细介绍如何使用 .NET 框架构建并部署 Docker 容器化应用程序,涵盖环境搭建、项目创建、Dockerfile 编写等关键步骤。首先安装必要软件,如 Visual Studio 2022 及 Docker Desktop。接着创建 .NET Core 控制台应用,并在项目根目录编写 Dockerfile 文件。使用 .NET 运行时基础镜像,复制二进制文件,指定入口点。运行命令构建镜像并测试容器。为实现通信,映射端口。最后,标签化镜像并推送到 Docker Hub,为生产环境部署做好准备。掌握这些步骤,即可轻松应对从小型项目到大规模应用的各种需求。
15 0
|
4天前
|
运维 Shell Go
构建 Go 应用 docker 镜像的十八种姿势
构建 Go 应用 docker 镜像的十八种姿势
|
3月前
|
应用服务中间件 nginx 开发者
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
最近一段时间 Docker 镜像一直是 Pull 不下来的状态,感觉除了挂🪜,想直连 Docker Hub 是几乎不可能的。更糟糕的是,很多原本可靠的国内镜像站,例如一些大厂和高校运营的,也陆续关停了,这对我们这些个人开发者和中小企业来说是挺难受的。之前,通过这些镜像站,我们可以快速、方便地获取所需的 Docker 镜像,现在这条路也不行了。感觉这次动作不小,以后想直接访问 Docker Hub 是不可能了。所以我们得想办法搭建自己的私有镜像仓库。
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
|
安全 Java Linux
【Docker】五 Docker Hub管理镜像
Docker Hub是Docker官方维护的Docker Registry,上面存放着很多优秀的镜像。不仅如此,Docker Hub还提供认证、工作组结构、工作流工具、构建触发器等工具来简化我们的工作。 前文已经讲过,我们可使用 `docker search` 命令搜索存放在Docker Hub中的镜像。这篇文章我们来详细探讨Docker Hub的使用。
476 1
【Docker】五 Docker Hub管理镜像
|
Docker 容器 数据安全/隐私保护
Docker系列教程09-使用Docker Hub管理镜像
原文:http://www.itmuch.com/docker/09-docker-docker-hub/ Docker Hub是Docker官方维护的Docker Registry,上面存放着很多优秀的镜像。
1580 0
下一篇
云函数