Docker自编译镜像上传DockerHub

记录下镜像上传 DockerHub 的步骤,不过仔细想了想,一般人应该不会有这种需求?毕竟 DockerHub 的服务在国内都是时断时续的。
起因
腾讯云轻量服务器的性能太垃圾了,自己写的 Dockerfile,远端编译镜像,腾讯云轻量机的东京 1 核 2G 机器直接失联,多次尝试编译镜像无果,所以只能本地编译,然后通过一种方法同步给远端机器。
Docker Hub 是官方的镜像托管平台,用法和 Git 托管平台差不多,但它托管的内容不是 Git 工程,而是 Docker 镜像。
步骤
1.注册账户
首先需要在 Docker 官网注册一个账户,访问如下 Url 按提示注册即可:
https://hub.docker.com/signup
注意:可能需要特殊网络才能打开网页并加载验证码。
2.创建仓库
接下来需要创建一个镜像仓库,在已登录的情况下,访问步骤 1 链接,网页右上角即有创建仓库按钮,如下图:
点击创建按钮后,选择仓库公有/私有等属性,并填写仓库名即可。
3.打包机登录
在打包机上,输入如下命令,登录 DockerHub 账号:
docker login
回车后,按提示依次输入账号密码即可。
4.Build Dockerfile 并修改 Tag
首先按照常规方法 build 镜像(以我的 psn-api 工程为例):
# 进入 Dockerfile 所在目录
cd psn-api
# build
docker build -t psn-api .
之后修改镜像 Tag 为远端仓库 Tag:
# psn-api 为本地镜像名 azimiao/psn-api 为远端名
docker tag psn-api azimiao/psn-api
5.Push 镜像
接下来和 Git 操作方法类似,使用如下命令将本地镜像推送至 DockerHub:
docker push azimiao/psn-api
6.验证
推送完成后,在仓库网页端可见推送的详细信息,如下图:
在其他机器上尝试拉取 Docker 镜像并运行:
docker run -itd --name psn-api -p 4000:4000 azimiao/psn-api
如果得法,将正常运行。
就为了本地编译docker,把wsl1升到了wsl2
我是直接在本地 PVE nas 上开了个 ubuntu 虚拟机
相比于 GitHub 上的托管的容器,Docker Hub的网络还是挺不错的