1、直接拉取天池比赛官方的基础镜像!
新建一个文件夹(例如tianchi_submit_demo)用于存放这次任务镜像所需的文件(这个方法二用到)。其中hello_world.py中是各位自己的代码部分,run.sh参考:python hello_world.py
result.json是自己代码生成的。
2、容器转换为镜像:
方法一:直接从外部导入,未用Dockerfile
1)外部文件导入container里,docker cp 外部文件路径 container_id:/www/ 即/www的目录下。
docker cp D:\shiyanshiobject_deteciton\热身赛一布匹\tianchi_submit_demo f14a9c452f4a:/
注意:好像需要把run.sh 、代码文件、result.json 也要放进镜像里面!!!最好将tianchi_submit_demo(包含前面三样)也放进去!(不放tianchi_submit_demo文件夹,我试过了!)
3)通过docker commit 容器id 镜像:版本(你想取得名字) 将容器转化成了镜像
方法二:直接用Dockerfile
新建一个文件夹(例如tianchi_submit_demo)用于存放这次任务镜像所需的文件,文件夹中内容示例,其中hello_world.py中是各位自己的代码部分,run.sh参考:python hello_world.py
result.json是自己代码生成的。
注:在docker软件中的container容器里进行这些操作,不是Windows系统的批处理!
1)mkdir 文件1 // 创建文件1(这个我还没试过,我是将文件1从外部导入)
2)cd ./tianchi_submit_demo //进入文件
3)touch Dockerfile //创建文件
4)vim Dockerfile //编辑文件,如果vim无法识别,需要去下载vim。在使用docker容器时,有可能没有安装Vi, 安装Vi:apt-get install vim,如果提示:Unable to locate package vim,则需要敲:apt-get update, 等更新完毕以后再敲命令: apt-get install vim。
Dockerfile配置文件参考,Dockerfile是固定名称,注意首字母大写。Dockerfile中命令皆大写:
Dockerfile内容如下:
Base Images
从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
把当前文件夹里的文件构建到镜像的根目录下
ADD . /
指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /
镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
输入自己要的内容信息,然后按一下esc键,这个时候切换模式。然后直接输入:wq,意思就是写完以后保存。
3、提交阶段:
1)sudo docker login --username=魏洛格 registry.cn-shenzhen.aliyuncs.com //登录阿里云仓库
2)sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/test_why/test_why_submit:[镜像版本号] //将镜像改名保存
3)sudo docker push registry.cn-shenzhen.aliyuncs.com/test_why/test_why_submit:[镜像版本号] //将镜像传送到阿里云仓库中
示例:(上面三条命令才是重点!其中windows下不用sudo,直接docker push就可)
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB
sudo docker tag 37bb9c63c8b2 registry-vpc.cn-shenzhen.aliyuncs.com/acs/agent:0.7-dfb6816
(这个要试试!!)构建完成后可先验证是否正常运行,正常运行后再进行推送。注:your_image是镜像id
CPU镜像:docker run your_image sh run.sh
GPU镜像:nvidia-docker run your_image sh run.sh
使用 "docker push" 命令将该镜像推送至远程。
sudo docker push registry-vpc.cn-shenzhen.aliyuncs.com/acs/agent:0.7-dfb6816
注:windows下批处理命令:
dir 显示所有文件
cd 进入文件
cd.. 返回上一级目录
ubuntu命令
ls :显示所有文件
cd ./ :进入文件里
touch 文件 : 生成文件
rm -f Dockerfile :删除Dockerfile文件
rmdir Dockerfile : 删除Dockerfile文件夹
待搞定!
1、新建文件夹/root/docker/nginx ,在目录下新建一个名为Dockerfile的文件,在里面增加如下内容:
2、在Dockerfile所在路径执行以下命令构建镜像:
# docker build -t nginx:liuq .
其中,-t指定镜像名字,命令最后的点(.)表示Dockerfile文件所在路径
Docker images 查看本地镜像
docker ps -a 查看所有存在的container
Docker start 容器名 (启动容器)/ docker stop 容器名称(停止容器)
docker ps 查看运行container
Docker attach 容器名(我们使用docker ps查看到该容器信息,进入容器内)
Docker run (-it 进入交互页面) --name=’a2’ your_image sh run.sh
docker commit a2 镜像:版本 (将你的容器打包成一个镜像)