目 录CONTENT

文章目录

Docker 入门系列(6)- 容器镜像仓库简介及 aliyun 镜像仓库的使用

ZERO
2022-06-18 / 0 评论 / 0 点赞 / 46 阅读 / 0 字

文章转载自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 镜像,实现镜像的统一管理和共享,如下图所示
image-1655570628369

镜像仓库相关操作

用户登录

上传镜像前需要进行用户登录,登录后生成 ~/.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/

注册登录过程省略,可以直接用支付宝注册登录

仓库管理

进入镜像容器服务控制台
image-1655570953630

进入控制台
image-1655570975846

进入实例
image-1655570992535

配置访问密码(登录密码)
image-1655571014815

创建命名空间
命名空间用来对应一个公司、组织或个人用户,例如 Aliyun、Obama。不推荐用来对应一个模块或系统,例如 Tomcat、CentOS,应用或模块推荐使用仓库进行管理

image-1655571043723

创建仓库(可选)

没有创建仓库时,上传镜像也会自动创建

image-1655571056570

image-1655571075264

查看推送地址

image-1655571090756

管理镜像

用户登录阿里云镜像仓库

# 指定用户登录
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

阿里云查看上传的镜像

image-1655571233308

下载并使用镜像

在另一台主机上下载镜像并创建容器

# 登录
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
/ # 
0

评论区