一、安装 Docker 环境

$ sudo apt-get update 
$ sudo apt install docker.io

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_ubuntu


docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_ubuntu_02


Docker环境搭建完毕。二、构建镜像并推送

在安装好Docker环境的本机/服务器构建并推送容器镜像。

安装curl:

使用命令sudo apt install curl

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_推送_03

docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/python:3

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_推送_04


报错:输入错误,应该是cn-shanghai。。。(老眼昏花)

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_Docker_05


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的镜像。最后的.是构建镜像的路径,不可以省掉。

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_推送_06


构建完成之后可先验证是否正常运行,正常运行后再进行推送

CPU镜像:docker run your_image sh run.sh

GPU镜像:nvidia-docker run your_image sh run.sh

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_深度学习_07


可以看到,在CPU上是可以正常运行,而在GPU上指令找不到。。。接着推送到镜像仓库:

docker push registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_推送_08


可以看到我没有登入,需要登录之后才能推送成功。登录按照仓库描述登录即可。

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_docker_09


第一次推送,有几个镜像推送不成功,而不知道什么原因。。

docker 上传什么时候用 PATCH 什么时候用 PUT docker build push_ubuntu_10


没看懂这个fata什么意思。。