自定义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 结果检查

~

目录
打赏
0
2
2
0
12
分享
相关文章
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
160 70
|
18天前
|
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
70 27
|
23天前
|
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
108 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
18天前
|
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
64 22
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
102 29
|
6月前
|
Docker 镜像与 Docker 容器的区别
【8月更文挑战第27天】
447 5
|
7月前
|
docker常用命令大全(基础、镜像、容器、数据卷)
这些命令仅仅是 Docker 命令行工具的冰山一角,但对于日常操作来说已经非常全面。通过熟练地使用这些基础命令,用户可以有效地管理 Docker 的镜像、容器、数据卷和网络。随着用户对 Docker 的深入使用,更高级的命令和选项将会变得必需,但上面列出的命令已经为用户提供了一个坚实的起点。对于初学者来说,理解和掌握这些常用命令是深入学习 Docker 的基础。
561 5
docker常用命令大全(基础、镜像、容器、数据卷)
docker 服务,镜像,容器命令总结
docker 服务,镜像,容器命令总结
194 4
Docker镜像和容器使用
【7月更文挑战第2天】Docker 概要:Docker 镜像是只读模板,包含运行应用的环境和代码,像蓝图一样。构建镜像可通过基于现有镜像(如 Ubuntu)安装软件后提交,或使用 Dockerfile 定义构建过程。Docker 容器是镜像的运行时实例,`docker run` 命令可创建并运行容器。常用容器操作包括启动/停止、状态检查和交互式进入。通过端口映射,容器服务可从主机访问,促进应用部署和管理的便捷性。
157 3

热门文章

最新文章