自定义Docker镜像推送到Docker Hub实战
【摘要】 云原生探索的必经之路—容器化,而容器化目前最主流的技术莫过于Docker了,因为之前也大量的输出过Docker相关的技术博客,如果感兴趣的话可以直接访问专栏:《探索云原生》,按需学习哦。这篇文章还是从Docker入手,从0开始讲述下如何将自己的Docker镜像上传到Docker Hub,并在Docker Hub上进行管理。下面开始~那既然是从0开始,我们首先要做的准备工作就是:(1)准备一台...
云原生探索的必经之路—容器化,而容器化目前最主流的技术莫过于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 结果检查
~
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)