一、配置coding代码仓库和镜像仓库

1. 创建新项目

  • 首页——项目——创建项目

image.png

  • 选择devops项目,完成项目创建

image.png

2. 创建代码仓库

  • 代码仓库——创建代码仓库

image.png

  • 添加仓库信息,并创建仓库

image.png

  • 按照提示初始化仓库

image.png

  • 初始化完成后coding仓库如下所示

image.png

3. 创建制品仓库

  • 按照提示创建docker镜像仓库,权限可以选公开

image.png

  • 创建完成后会提示登录和拉取镜像命令

image.png

二、本地创建项目和文件

1. 创建dockerfile

  • 在Dockerfile的FROM中写明拉取的镜像tag
bogon:docker_images cuiliang$ pwd
/Users/cuiliang/coding/docker_images
bogon:docker_images cuiliang$ ls
Dockerfile README.md
bogon:docker_images cuiliang$ cat Dockerfile 
FROM centos:latest

2. 将本地仓库代码推送至coding远程仓库

bogon:docker_images cuiliang$ git add .
bogon:docker_images cuiliang$ git commit -m 'centos'
[master 0c41414] centos
 1 file changed, 1 insertion(+)
 create mode 100644 Dockerfile
bogon:docker_images cuiliang$ git push
枚举对象中: 4, 完成.
对象计数中: 100% (4/4), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 289 字节 | 144.00 KiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0
To https://e.coding.net/cuiliang0302/docker_images/docker_images.git
   a3e9165..0c41414  master -> master

三、配置coding自动构建任务

1. 创建构建计划

  • 持续集成——创建构建计划——选择Docker 镜像推送

image.png

  • 配置构建计划

image.png

  • 创建完成后,点击修改配置,将服务器节点设置为香港

image.png

  • 修改触发规则为推送到master时触发构建

image.png

2. 手动执行构建,测试功能

  • 点击手动构建,等待完成构建镜像

image.png

  • 制品仓库查看镜像信息

image.png

  • 按照提示本地拉取镜像并测试
# 按照提示,登录镜像仓库
bogon:docker_images cuiliang$ docker login -u 1554382111@qq.com cuiliang0302-docker.pkg.coding.net
Password: 
Login Succeeded
# 拉取构建完成的镜像
bogon:docker_images cuiliang$ docker pull cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
latest: Pulling from docker_images/docker_images/my-docker-image
7a0437f04f83: Pull complete 
Digest: sha256:dbbacecc49b088458781c16f3775f2a2ec7521079034a7ba499c8b0bb7f86875
Status: Downloaded newer image for cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
# 修改镜像tag
bogon:docker_images cuiliang$ docker tag cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest centos:latest
# 测试镜像
bogon:docker_images cuiliang$ docker run centos:latest cat /etc/redhat-release
CentOS Linux release 8.3.2011

四、拉取镜像流程演示

以拉取kube-state-metrics镜像为例,演示完成操作流程。

1. 尝试本地直接拉取镜像

bogon:docker_images cuiliang$ docker pull k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.0.0-rc.1
Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

2. 修改dockerfile,并将代码推送至coding远程仓库,触发自动构建

bogon:docker_images cuiliang$ ls
Dockerfile README.md
# 修改dockerfile,FROMkube-state-metrics镜像
bogon:docker_images cuiliang$ vim Dockerfile 
bogon:docker_images cuiliang$ cat Dockerfile 
FROM k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.0.0-rc.1
# 提交代码并推送远程仓库
bogon:docker_images cuiliang$ git add .
bogon:docker_images cuiliang$ git commit -m 'kube-state-metrics'
[master 859447c] kube-state-metrics
 1 file changed, 1 insertion(+), 1 deletion(-)
bogon:docker_images cuiliang$ git push
枚举对象中: 5, 完成.
对象计数中: 100% (5/5), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (3/3), 完成.
写入对象中: 100% (3/3), 328 字节 | 164.00 KiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0
To https://e.coding.net/cuiliang0302/docker_images/docker_images.git
   0c41414..859447c  master -> master

3. 等待构建完成,收到邮件通知

image.png

4. 本地拉取镜像,修改tag

bogon:docker_images cuiliang$ docker pull cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
latest: Pulling from docker_images/docker_images/my-docker-image
60775238382e: Pull complete 
e3030d04a6a4: Pull complete 
Digest: sha256:a13d8bb0013420d1dab20bddf8d64979702f010976958519449ee312218b3e68
Status: Downloaded newer image for cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
bogon:docker_images cuiliang$ docker tag cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.0.0-rc.1

五、拉取资源流程演示

dockerfile的ADD指令支持将远程URL资源拉取到本地,但是如果资源需要验证,或https访问,那么使用 RUN wget, RUN curl 或者其他工具。此处直接使用wget拉取一个github项目源码试试

1. 修改dockerfile,并将代码推送至coding远程仓库,触发自动构建

localhost:docker_images cuiliang$ ls
Dockerfile README.md
localhost:docker_images cuiliang$ cat Dockerfile 
FROM busybox:latest
WORKDIR /tmp
RUN wget -P /tmp https://github.com/youzan/vant/archive/refs/heads/dev.zip
localhost:docker_images cuiliang$ git add .
localhost:docker_images cuiliang$ git commit -m 'dev.zip'
[master 3c3844f] dev.zip
 1 file changed, 3 insertions(+), 1 deletion(-)
localhost:docker_images cuiliang$ git push
枚举对象中: 5, 完成.
对象计数中: 100% (5/5), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (3/3), 完成.
写入对象中: 100% (3/3), 374 字节 | 374.00 KiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0
To https://e.coding.net/cuiliang0302/docker_images/docker_images.git
   859447c..3c3844f  master -> master

2. 等待构建完成,收到邮件通知

image.png

3. 拉取镜像,提取资源

# 拉取最新镜像
localhost:docker_images cuiliang$ docker pull cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
latest: Pulling from docker_images/docker_images/my-docker-image
f531cdc67389: Pull complete 
46674a1face8: Pull complete 
Digest: sha256:c346f688e9cf2f075562c210c7df3f0bdf2542271da32fd734b9745a8dbd3384
Status: Downloaded newer image for cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest
cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest

# 查看资源名称
localhost:docker_images cuiliang$ docker run cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest ls
dev.zip
# 查看容器ID
localhost:docker_images cuiliang$ docker ps -a
CONTAINER ID   IMAGE                                                                                   COMMAND                  CREATED          STATUS                     PORTS                               NAMES
50e239ff9ca9   cuiliang0302-docker.pkg.coding.net/docker_images/docker_images/my-docker-image:latest   "ls"                     10 seconds ago   Exited (0) 8 seconds ago                                       gallant_germain
640a1b7e3e83   redis                                                                                   "docker-entrypoint.s…"   2 weeks ago      Exited (255) 2 weeks ago   0.0.0.0:6379->6379/tcp              redis
52ade65599b4   mysql                                                                                   "docker-entrypoint.s…"   3 weeks ago      Exited (255) 2 weeks ago   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
# 将容器资源拷贝到本地
localhost:docker_images cuiliang$ docker cp 50e239ff9ca9:/tmp/dev.zip .
localhost:docker_images cuiliang$ ls
Dockerfile README.md  dev.zip
0 子项 · 2 次浏览 · 2026-09-24