茄子的个人空间

本地构建docker镜像并上传至阿里云镜像服务站

字数统计: 830阅读时长: 3 min
2025/04/24
loading

最近比赛需要构建docker镜像,上传至阿里云镜像服务站,以便于官方复现测评,这是一个繁琐的过程,以后也会用到,所以记录一下。

主要分为以下几步:

1) 开通阿里云镜像服务

2) 在本地电脑或者服务器上面安装docker

3) 构建docker镜像

4) 将本地 docker 镜像推送至阿里云镜像服务站

5)本地一键镜像创建和上传脚本

下面为详细的步骤描述:

1) 开通阿里云镜像服务

阿里云镜像服务站的开通过程比较繁琐,根据DataWhale的教程操作如下:

a. 点击链接并登录阿里云账号

1. 打开管理控制台

b. 创建个人版实例

img

c. 创建命名空间

img

d. 创建镜像仓库

创建镜像仓库时,代码源选择本地镜像上传,然后会跳转到基本信息页面,查看操作指南,这里写明了,如何将本地镜像上传到镜像服务站的详细步奏。

2) 在本地电脑或者服务器上面安装docker

此处略,详见docker官网。

3) 构建docker镜像

a. 构建 docker-file 文件

根据自己的需求编辑好docker-file文件,以下是一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FROM registry.cn-hangzhou.aliyuncs.com/sais-public/pytorch:2.0.0-py3.9.12-cuda11.8.0-u22.04

ADD . /app

# 设置工作目录
WORKDIR /app

# 更新pip

RUN pip install --upgrade pip

# 设置pip国内源
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

RUN pip install torch_scatter-2.1.1+pt20cu118-cp39-cp39-linux_x86_64.whl

# 定义容器启动时默认执行的命令
CMD ["sh", "/app/run.sh"]

b. 执行构建docker镜像的命令:

1
docker build -t test:v4 -f Dockerfile .

c. 查看构建好的 docker 镜像

1
docker images

4) 将本地 docker 镜像推送至阿里云镜像服务站

执行下面的命令,为本地镜像打标签,并且将本地镜像推送到阿里云镜像服务站(下面是一个示例,具体的可以在1.d步骤 “创建镜像仓库-操作指南”中查看 )

1
2
3
$ docker login --username=[用户名] [镜像站点]
$ docker tag [ImageId] [镜像站点]/[命名空间]/[镜像仓库名]:[镜像版本号]
$ docker push [镜像站点]/[命名空间]/[镜像仓库名]:[镜像版本号]

5) 本地一键镜像创建和上传脚本

为了方便,下面给出了本地一键镜像创建和上传脚本示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
# docker的标签
TAG=${1:-"v4"}
# docker的用户名和密码
USER=""
PASSWORD=""
# 推送的docker仓库
REGISTRY="[镜像站点]/[命名空间]/[镜像仓库名]"
# 使用变量进行 Docker 登录
docker login -u $USER -p $PASSWORD [镜像站点]
# 打包代码
docker build -t test:v4 -f Dockerfile .
# 修改镜像
docker tag test:v4 $REGISTRY:$TAG
# 推送镜像
docker push $REGISTRY:$TAG
# 打印信息
echo "推送成功,请到比赛官方提交作品"
echo "镜像路径:$REGISTRY:$TAG"
echo "用户名:$USER / 密码:$PASSWORD"

# 一键化脚本打包使用:
## 1. 将所有的代码 模型 运行脚本放在同一个文件夹
## 2. 修改上述脚本中的 账号 密码 仓库
## 3. 执行推送脚本:sh push.sh (默认tag为v1,如需要修改可命令后添加,如:sh push.sh v2)
## 4. 等待成功及打印

参考链接

Datawhale开通阿里云镜像服务教程

完! enjoy 😄

CATALOG
  1. 1. 1) 开通阿里云镜像服务
  2. 2. 2) 在本地电脑或者服务器上面安装docker
  3. 3. 3) 构建docker镜像
  4. 4. 4) 将本地 docker 镜像推送至阿里云镜像服务站
  5. 5. 5) 本地一键镜像创建和上传脚本
  6. 6. 参考链接