dockerhub仓库
如何上传镜像到dockerhub镜像仓库,可以供大家公开访问呢
将Docker镜像上传到Docker Hub以供公开访问,可以通过以下步骤实现:
1. 创建Docker Hub账户
如果你还没有Docker Hub账户,首先需要创建一个。访问 Docker Hub 并注册一个新账户。
2. 登录Docker Hub
在你的终端或命令行中,使用以下命令登录到Docker Hub:
sh
docker login
输入你的Docker Hub用户名和密码完成登录。
3. 构建Docker镜像
如果你还没有构建好Docker镜像,需要先构建一个。假设你的项目目录中有一个 Dockerfile
,可以使用以下命令构建镜像:
sh
docker build -t <your-username>/<your-repo-name>:<tag> .
例如,如果你的Docker Hub用户名是 myusername
,仓库名是 myapp
,标签是 v1.0
,命令如下:
sh
docker build -t myusername/myapp:v1.0 .
4. 标记镜像(可选)
如果你已经有一个本地镜像,并且需要将其标记为你的Docker Hub镜像,可以使用以下命令:
sh
docker tag <local-image>:<tag> <your-username>/<your-repo-name>:<tag>
例如:
sh
docker tag mylocalimage:latest myusername/myapp:v1.0
5. 推送镜像到Docker Hub
使用以下命令将镜像推送到Docker Hub:
sh
docker push <your-username>/<your-repo-name>:<tag>
例如:
sh
docker push myusername/myapp:v1.0
6. 设置镜像仓库为公开
默认情况下,新创建的Docker Hub仓库是私有的。要将仓库设置为公开以便其他人可以访问:
- 登录到 Docker Hub。
- 在你的个人资料中找到你刚刚创建的仓库。
- 点击仓库名称进入仓库详情页面。
- 在仓库详情页面的右上角,点击“Settings”(设置)。
- 在设置页面中,找到“Repository visibility”(仓库可见性)部分。
- 选择“Public”(公开)选项,并保存更改。
7. 验证
你可以通过访问 https://hub.docker.com/r/<your-username>/<your-repo-name>
来验证你的镜像是否已经上传成功并公开。
例如:
sh
https://hub.docker.com/r/myusername/myapp
示例完整流程
假设你的Docker Hub用户名是 myusername
,仓库名是 myapp
,标签是 v1.0
,以下是一个完整的流程示例:
sh
# 登录Docker Hub
docker login
# 构建Docker镜像
docker build -t myusername/myapp:v1.0 .
# 推送镜像到Docker Hub
docker push myusername/myapp:v1.0
# 设置仓库为公开(在Docker Hub网站上进行)
通过这些步骤,你就可以将Docker镜像上传到Docker Hub并使其公开供大家访问。
实际测试
bash
[root@docusaurus-wiki ~]#docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: onlyonexl
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@docusaurus-wiki ~]#
bash
docker tag home2.0:latest onlyonexl/homePlus:v2.0
docker push onlyonexl/homePlus:v2.0
[root@docusaurus-wiki ~]#docker tag home2.0:latest onlyonexl/homePlus:v2.0
Error parsing reference: "onlyonexl/homePlus:v2.0" is not a valid repository/tag: invalid reference format: repository name must be lowercase
[root@docusaurus-wiki ~]#
bash
docker tag home2.0:latest onlyonexl/home:v2.0
docker push onlyonexl/home:v2.0
bash
docker pull onlyonexl/home:v2.0
- 运行测试
先删除老刚才tag好的镜像:
bash
docker rmi onlyonexl/home:v2.0
- 再从dockerhub拉取镜像
bash
docker pull onlyonexl/home:v2.0
可以看到,拉取成功。
- 这里删除老容器,再次运行新容器,观察是否正常
bash
[root@docusaurus-wiki ~]#docker rm -f diy-index-home
diy-index-home
[root@docusaurus-wiki ~]#docker run -p 12445:12445 -d --name=diy-index-home --restart=always onlyonexl/home:v2.0
0924bd211a25e7ef30befb4a3859b01380ea954f4774455e2dffcfe058a3c1d4
[root@docusaurus-wiki ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0924bd211a25 onlyonexl/home:v2.0 "docker-entrypoint.s…" 11 seconds ago Up 8 seconds 0.0.0.0:12445->12445/tcp diy-index-home
访问测试:
代码汇总
bash
#拉取并运行容器
docker run -p 12445:12445 -d --name=diy-index-home --restart=always onlyonexl/home:v2.0
#域名访问
http://onedayxyy.cn/ #能正常访问
https://onedayxyy.cn/