# 镜像仓库

服务创建时，会分配一个镜像仓库，该服务下生成或上传的镜像均被推送到该镜像仓库中，不支持自定义绑定镜像仓库；不同服务间的镜像仓库互相隔离。

镜像仓库支持存储 100 个镜像，存储镜像不产生费用。

## 重置密码

当你首次使用镜像仓库用于镜像推送时，需先重置镜像仓库密码

进入服务后，点击「服务设置」TAB 页内镜像仓库链接按钮，将跳转到腾讯云容器服务-镜像仓库页，点击重置密码按钮，在弹出框中写入自己的密码。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/1f5f1ca2-b12a-457b-8614-9661f4267e6b.png)

为保障用户镜像仓库安全，后台不以任何形式存储镜像仓库密码，请将密码妥善保管；如忘记密码，则直接重置密码；

- 镜像仓库账号默认为“root”，不可更改；
- 密码：8-64 个字符，包含大小写英文字母、数字和符号~!@#$%^&*_-+=`|\(){}[]:;<>,.?/中的任意三种；

## 上传镜像

### 一、获取基本信息

在镜像仓库页面，点击「仓库信息」TAB 按钮，在基本信息中，复制仓库地址，另外在仓库名称中，复制 `tcb-` 后面的 12 位数字，我们需要记录，以便于在后续步骤中使用

![](https://res8.wxqcloud.qq.com.cn/wxdoc/78f50a54-187a-495c-a63a-77fd0d362770.png)

### 二、本地登录镜像仓库

在你的开发环境中，运行 Docker，启动命令行终端，输入以下命令：

```bash
docker login --username=[用户名] ccr.ccs.tencentyun.com
```

上述命令中的 [用户名]，根据第一步获取的 `tcb-` 后面的 12 位数字填写，一般是 12 位数字。

如果显示权限问题，请在命令前面加 `sudo` ；Windows 系统请使用管理员打开终端，后续命令出现此情况也照此执行。

执行后，会显示 password 让你输入密码，将第一步设置的密码写入即可登录成功。
注意，如果使用 `sudo`，有两个密码，第 1 个为本机管理员密码，第 2 个才是仓库密码。

### 三、上传本地镜像到仓库

登录成功后，就可以上传镜像了，镜像上传主要分 3 步。

#### 1. 获取镜像的 imageID

每个本地镜像都有一个 imageID，唯一的，你给镜像起的名字叫 tag。首先运行如下命令，获取 imageID

```bash
docker images
```

执行后，会列出来你本地打包的镜像，还包含你给每个镜像起的名字 tag，根据 tag 找到目标镜像，复制其 imageID

#### 2. 复制镜像并重命名

因为上传镜像到仓库，有区别于本地，需要复制出来重新列装以下，执行如下命令：

```bash
docker tag <镜像imageID> ccr.ccs.tencentyun.com/<仓库地址>:<镜像TAG-自定义>
```

如上  填写在 1 中获取的 imageID， 填第一步复制的仓库地址。

 自定义就可以，在第 3 步有用。

#### 3. 推送镜像

```bash
docker push ccr.ccs.tencentyun.com/<仓库地址>:<镜像TAG-自定义>
```

 请参考镜像上传指引中 "tcb-" 打头，一直到冒号的一传地址。 填写 2 步指定的。

push 过程中会进行差异更新，也就是只更新改变的部分，已经存在的不会推送，所以在第 1 次之后推送都非常小，除非你更改了基础镜像。

经过以上步骤后，你的本地镜像就已经在微信云托管的镜像仓库中了，你可以通过版本创建指定镜像部署了。

### 四、从仓库拉取镜像到本地

```bash
docker pull <下载地址>
```

 填写镜像仓库列表中的对应镜像地址。

## 删除镜像

镜像仓库支持存储 100 个镜像，如已确认不再使用的镜像建议删除。

选择目标镜像点击「删除」，二次确认后即删除镜像，删除后不可恢复。

- 如目标删除镜像有关联的版本不支持删除，为保证版本不受影响，需先将关联的版本删除后才可删除镜像
