一、配置docker环境
- 下载docker desktop
确保电脑版本和软件版本的一致性 - 配置Docker Desktop
在系统右下角托盘图标内右键菜单选择 Settings,使用镜像加速器:选择 Daemon。旧版本在Registry mirrors里直接添加https://5w5jh673.mirror.aliyuncs.com 网址 ;新版本选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:
{
“registry-mirrors”: [“https://5w5jh673.mirror.aliyuncs.com”]
}
二、开通容器镜像服务(阿里云)
- 创建地址唯一的命名空间
- 创建镜像仓库,选择本地仓库
三、提交目录
- 建项目文件夹,以下文件在同一文件夹中
- tcdata:存数据(有大佬知道这个需要在里面吗,一直搞不清楚阿里云里的数据集是怎么个流程)
- dockerfile(用txt写,去掉后缀):
# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
## 把当前文件夹里的文件构建到镜像的根目录下(.后面有空格,不能直接跟/)
ADD . /
## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /
## Install Requirements(requirements.txt包含python包的版本)
## 这里使用清华镜像加速安装
RUN pip install --upgrade pip
RUN pip install --upgrade -i https://pypi.douban.com/simple -r requirements.txt
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
- run.sh(用txt写):运行脚本
#!/bin/sh
CURDIR="`dirname $0`" #获取此脚本所在目录
echo $CURDIR
cd $CURDIR #切换到该脚本所在目录
python hello_world.py
- py文件
- requestmengts.txt:保存python用到的一些库
在当前目录,打开cmd或者powershell,使用 pipreqs
# 安装
pip install pipreqs
# 在当前目录生成
pipreqs . --encoding=utf8 --force
- 在该文件夹下,地址栏内输入powershell,打开powershell,进行指令输入
## docker登陆(push镜像需要登陆,服务器地址为赛事要求的,这里以上海为例):
docker login --username=你自己的用户名 registry.cn-shanghai.aliyuncs.com
## 不要忘记加.
##创建镜像并设置标签
docker build -t 公网地址/版本号 .
## 构建完成后可先验证是否正常运行,正常运行后再进行推送。
#启动容器,在容器内执行命令
CPU镜像:docker run 公网地址/版本号 sh run.sh
GPU镜像:nvidia-docker run 公网地址/版本号 sh run.sh
## 推送到镜像仓库,如果出错,可能没登录
docker push 公网地址/版本号
四、提交结果
提交结果界面的镜像路径:公网地址/版本号
五、修改镜像
- 将修改文件cp到指定容器
拷贝本地到docker
docker cp 本地文件路径 容器id:容器路径
docker cp D:/test.py 1549ee7435bd:test.py
- 测试容器运行
我是在dockerdesktop上运行测试的 - 查看本地镜像
docker images
- 提交更新后的容器
docker commit 容器id 新镜像名
docker commit 1549ee7435bd registry.cn-shenzhen.aliyuncs.com/alicechen/aiearth
- 查看本地镜像
- push镜像
- 参考
https://www.yuque.com/docs/share/2b3bb9b8-03f0-4440-9300-7da570d5ddf0《镜像修改提交》