文章转载自: https://www.skynemo.cn/archives/01-registry-with-aliyun
本文中所有描述均以 Docker version 20.10.x 为基准
简介
容器镜像仓库,又称为 Registry 注册中心、 Repositorys、容器镜像中心、容器镜像存储库,等名称。提供了容器镜像的存储以及管理服务,用户可以通过访问容器镜像仓库来存储、共享容器镜像
分类
容器镜像仓库大致上可以分为两类
-
公共仓库
一般在互联网上提供服务。Docker Hub、阿里云、腾讯云等均提供了容器镜像公有仓库服务,其中 Docker Hub 为官方仓库,但在国内访问速度较慢,所以建议使用阿里云、腾讯云等国内厂商提供的仓库 -
私有仓库
一般部署在私网内,在私网内提供服务。比较著名的有 Docker 官方开源的项目 Docker Registry,VMware 开源的 Harbor。由于Harbor 提供了易操作的 WEB 界面,并且支持用户管理、同步管理等功能,生产环境中建议使用 Harbor
仓库与 Docker 实例的关系
Docker 实例可以将镜像 push 到仓库,或者从仓库中 pull 镜像,实现镜像的统一管理和共享,如下图所示
镜像仓库相关操作
用户登录
上传镜像前需要进行用户登录,登录后生成 ~/.docker/config.json 文件保存用户信息
命令格式
root@docker:~# 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@docker:~# docker tag --help
Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
标签格式 : 仓库地址(默认为 docker.io ,即 dockerhub 地址)/命名空间、项目名/镜像(仓库)名:TAG
注:命名空间用来对应一个公司、组织或个人用户,例如Aliyun、Obama。不推荐用来对应一个模块或系统,例如Tomcat、CentOS,应用或模块推荐使用仓库进行管理
示例
root@docker:~# docker tag alpine:latest registry.cn-hangzhou.aliyuncs.com/kmust/alpine-base:1.0.1
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/kmust/alpine-base 1.0.1 c059bfaa849c 5 months ago 5.59MB
alpine latest c059bfaa849c 5 months ago 5.59MB
上传镜像到仓库
命令格式
root@docker:~# docker push --help
Usage: docker push [OPTIONS] NAME[:TAG]
Push an image or a repository to a registry
Options:
-a, --all-tags Push all tagged images in the repository
--disable-content-trust Skip image signing (default true)
-q, --quiet Suppress verbose output
上传时如果省略 tag ,将上传指定的 REPOSTORY
的所有版本
从仓库下载镜像
命令格式
root@docker:~# docker pull --help
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
示例-使用阿里云镜像仓库
创建阿里云镜像仓库
注册登录阿里云
阿里云官网:https://cn.aliyun.com/
注册登录过程省略,可以直接用支付宝注册登录
仓库管理
进入镜像容器服务控制台
进入控制台
进入实例
配置访问密码(登录密码)
创建命名空间
命名空间用来对应一个公司、组织或个人用户,例如 Aliyun、Obama。不推荐用来对应一个模块或系统,例如 Tomcat、CentOS,应用或模块推荐使用仓库进行管理
创建仓库(可选)
没有创建仓库时,上传镜像也会自动创建
查看推送地址
管理镜像
用户登录阿里云镜像仓库
# 指定用户登录
root@docker:~# ddocker login -u=阿里云账户全名 registry.cn-hangzhou.aliyuncs.com
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@docker:~# cat .docker/config.json
{
"auths": {
"registry.cn-hangzhou.aliyuncs.com": {
"auth": "MTg0ODczNTcyMjA6e--------------------i4="
}
}
}
镜像打标签
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine-base v1.0.0 c059bfaa849c 2 months ago 5.59MB
alpine latest c059bfaa849c 2 months ago 5.59MB
root@docker:~# docker tag alpine:latest registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine:1.0.0
root@docker:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine-base v1.0.0 c059bfaa849c 2 months ago 5.59MB
alpine latest c059bfaa849c 2 months ago 5.59MB
registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine 1.0.0 c059bfaa849c 2 months ago 5.59MB
上传镜像
root@docker:~# docker push registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine:1.0.0
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine]
8d3ac3489996: Mounted from kmust/alpine-base
1.0.0: digest: sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3 size: 528
阿里云查看上传的镜像
下载并使用镜像
在另一台主机上下载镜像并创建容器
# 登录
root@docker:~# docker login -u=18487357220 registry.cn-hangzhou.aliyuncs.com
Password:
# 下载镜像
root@docker:~# docker pull registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine:1.0.0
1.0.0: Pulling from kmust/my-alpine
59bf1c3509f3: Pull complete
Digest: sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine:1.0.0
registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine:1.0.0
docker run -it
root@ubuntu-20:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine 1.0.0 c059bfaa849c 2 months ago 5.59MB
# 创建容器
root@docker:~# docker run -it registry.cn-hangzhou.aliyuncs.com/kmust/my-alpine:1.0.0 sh
/ #
评论区