Docker | 发布镜像到镜像仓库

时间:2022-10-16 13:08:53

本文记录发布镜像到 DockerHub阿里云镜像仓库。工作中使用的是JFrog ArtifactoryHarbor,没有太大差别。

https://hub.docker.com/ 注册账号

1、登录docker

[root@--- ~]# docker login --help

Usage:  docker login [OPTIONS] [SERVER]

Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username
[root@--- ~]# 
[root@--- ~]# docker login -u xiaobluewhale
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@--- ~]# 

2、服务器上提交镜像

docker push [OPTIONS] NAME[:TAG]

docker push 命令推送镜像的规范是:注册用户名/镜像名。

使用以下方法之一命名您的本地镜像:

  1. 当你构建它们时,使用如下命令
docker build -t <hub-user>/<repo-name>[:<tag>]
  1. 重命名现有的本地镜像
docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]
  1. docker commit 提交更改
docker commit <existing-container> <hub-user>/<repo-name>[:<tag>]
  1. 推送镜像仓库
docker push <hub-user>/<repo-name>:<tag>
  • docker push xiao/tomcat
docker push xiao/tomcat
Using default tag: latest
The push refers to repository [docker.io/xiao/tomcat]
69421fc728fb: Preparing 
1f6217f0c2bb: Preparing 
aa9c3f9fafec: Preparing 
7d4a4cd414a9: Preparing 
74ddd0ec08fa: Preparing 
denied: requested access to the resource is denied 

推送失败,被拒绝

推送失败的原因: name必须是注册用户名

解决push失败问题

增加一个tag, 重命名镜像

# 增加tag,重命名镜像
docker tag 24b3a476f143 xiaobluewhale/tomcat:1.0
The push refers to repository [docker.io/xiaobluewhale/tomcat]

# 查看镜像
docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
xiaobluewhale/tomcat   1.0       24b3a476f143   13 hours ago   680MB
xiao/tomcat            1.0       24b3a476f143   13 hours ago   680MB
xiao/tomcat            latest    24b3a476f143   13 hours ago   680MB

# 推送镜像
docker push xiaobluewhale/tomcat:1.0

提交成功

Docker | 发布镜像到镜像仓库

提交的时候也是按照镜像的层级提交的

在个人DockerHub上查看推送成功的镜像

Docker | 发布镜像到镜像仓库

发布镜像到阿里云镜像仓库

1、登陆阿里云

2、找到容器镜像服务,创建实例

Docker | 发布镜像到镜像仓库

Docker | 发布镜像到镜像仓库

企业版需要付费购买(1个月741)

Docker | 发布镜像到镜像仓库

我选择创建个人实例

Docker | 发布镜像到镜像仓库

3、创建命名空间(为了隔离)

Docker | 发布镜像到镜像仓库

4、创建镜像仓库

本地

Docker | 发布镜像到镜像仓库

5、推送镜像

参考阿里云容器镜像指南

  1. 登录
docker login --username=[yourname] registry.cn-hangzhou.aliyuncs.com
  1. 查看镜像
docker images
REPOSITORY                      TAG       IMAGE ID       CREATED        SIZE
xiaobluewhale/tomcat            1.0       24b3a476f143   14 hours ago   680MB
  1. 推送镜像
docker push xiaobluewhale/tomcat:1.0
The push refers to repository [docker.io/xiaobluewhale/tomcat]

Docker | 发布镜像到镜像仓库

6、阿里云查看镜像

imageID: 24b3a476f143

Docker | 发布镜像到镜像仓库

也可以查看可视化的层信息

Docker | 发布镜像到镜像仓库


我是 甜点cc

热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。

希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。