一、安装 Docker 环境
$ sudo apt-get update
$ sudo apt install docker.io
Docker环境搭建完毕。二、构建镜像并推送
在安装好Docker环境的本机/服务器构建并推送容器镜像。
安装curl:
使用命令sudo apt install curl
docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
报错:输入错误,应该是cn-shanghai。。。(老眼昏花)
1.准备所需要的文件
新建一个文件夹:test_for_tianchi
新建Dockerfile文件:touch 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"]
run.sh参考: python hello_world.py
Docker的语法格式
FROM: 基础镜像(就是在什么镜像上面做)
MAINTAINER: 镜像创建者信息(作者的信息)
EXPOSE: 开放的端口
ENV: 设置变量
ADD: 复制文件到镜像(从数组机里把文件塞到docker容器里)
RUN: 制作镜像时执行的命令,可以有多个
WORKDIR: 定义容器默认工作目录
CMD: 容器启动时执行的命令,仅可以有一条CMD(要在方括号里面有参数以逗号分隔)
2.构建镜像并推送
执行docker build -t registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0 .
注意:registry.~~~是上面创建仓库的公网地址,用自己仓库地址替换。地址后面的:1.0为自己指定的版本号,用于区分每次build的镜像。最后的.是构建镜像的路径,不可以省掉。
构建完成之后可先验证是否正常运行,正常运行后再进行推送
CPU镜像:docker run your_image sh run.sh
GPU镜像:nvidia-docker run your_image sh run.sh
可以看到,在CPU上是可以正常运行,而在GPU上指令找不到。。。接着推送到镜像仓库:
docker push registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0
可以看到我没有登入,需要登录之后才能推送成功。登录按照仓库描述登录即可。
第一次推送,有几个镜像推送不成功,而不知道什么原因。。
没看懂这个fata什么意思。。