docker——构建自己的项目(阿里云仓库)| docker构建仓库镜像教程

在我们做项目或者想让别人复现自己的项目时,往往项目环境的配置导致无法顺利进行。而将我们开发的环境上传至云端,在有需要时,直接拉取,即可在所拉去的容器中方便、快速的开始我们的项目。本篇文章记录如何利用docker构建项目环境,并将构建好的容器上传至阿里云仓库,不同设备可直接从仓库中拉取,提高开发部署效率。
关于阿里云仓库可以了解阿里天池中的一个小项目:Docker练习场
docker的安装自行解决,下面项目为ubuntu操作系统,windows类似。

1 docker基本命令

查看当前开启的docker 容器:docker ps
在这里插入图片描述

查看当前所有存在的docker容器:docker images
在这里插入图片描述

开启某项docker容器:docker run -it [REPOSITORY]:[TAG]如下图,进入容器后我们可以看出,该容器就相当于一个小型的操作系统。退出可以直接exit
在这里插入图片描述
终端如需继续进入该容器:docker exec -it [id] /bin/bash。id见下图:
在这里插入图片描述

关闭或退出容器除可以在当前终端exit外还可以在新终端中docker stop [CONTATNER ID]:
在这里插入图片描述

删除容器:docker rm/rmi [CONTATNER ID] (删除容器前需先停止该容器)

该方法通常会报下面错误
在这里插入图片描述
在这里插入图片描述
使用:docker rmi -f [CONTATNER ID] 或者docker rmi [REPOSITORY]:[TAG]解决。

拉取docker仓库镜像容器:docker pull [env_name] 这里的env_name可以到docker官网的hub库里面找自己想要的环境,也可以拉取自己的仓库中的镜像容器。具体示例见后文……
推送docker仓库容器:docker push [REPOSITORY]:[TAG]。具体示例见后文……

2 构建项目环境

2.1 阿里云镜像加速器

没有开通阿里云镜像服务器的先开通。进入网址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
按照红框操作在终端完成,将会配置好daemon.json文件。
在这里插入图片描述

2.2 配置项目环境

本次的项目只配置torch、flask
项目代码:https://pan.baidu.com/s/1-FdTk7XjryvUsZR9CW9T3g 提取码:6uo5
具体内容可见:flask部署pytorch模型

docker hub中搜索对应环境的容器:
在这里插入图片描述
拉取该容器:docker pull pytorch/pytorch
在这里插入图片描述
开启该容器:docker run -it pytorch/pytorch并查看该环境下详细环境信息:pip list

在这里插入图片描述

在该容器基础上进行配置别的所需环境:pip install flask必要时可加–i https://pypi.tuna.Tsinghua.edu.cn/simple,加速安装。
Dk5NDI2OA==,size_16,color_FFFFFF,t_70)

在这里插入图片描述

由于本项目只需要这么多环境,故到此环境配置结束,其他环境同上安装。

2.3 上传项目文件并测试

将本地文件上传到docker容器中: docker cp local_file_path [容器id]:docker_path (注意相对路径与绝对路径问题,这里的容器id不是[CONTATNER ID],而是我们开启容器后root@后面的id)
例如docker cp ./ModelDeploy 0317bd0a9172:pytorch-deploy

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试

运行测试文件
在这里插入图片描述

新终端打开该容器:
n/09b3ebf0476348b29479c2d71699583f.png)

这里下载的模型存储在
![ttps://img-blog.csdnimg.cn/d4fb07295a36405bb81d0d0ba35d7994.png)

做到此步骤,我们已将该项目存放至0317bd0a9172(后文中要用这个——【容器id】)这个容器里,不要关闭(或退出)该容器,开启新终端,继续下面步骤。

3 创建阿里云仓库镜像

至此我们完成了在docker 容器中构建了我们的项目,接着需要我们将构建好的docker容器上传至镜像仓库

在阿里云镜像仓库中创建镜像仓库:
在这里插入图片描述
在这里插入图片描述
创建好后会跳转至:
在这里插入图片描述
这里我们不按照该页操作指示进行。(原因是按照这页操作将容器push到阿里云仓库镜像【也就是第三步将镜像推送至Registry】中的第二步打包镜像容器只会将原来未配置之前的容器打包成:registry.cn-hangzhou.aliyuncs.com/wjl_a/pytorch-flask 1.0 ) 这步骤其实也就是将现在配置好的容器打包成新的容器:registry.cn-hangzhou.aliyuncs.com/wjl_a/pytorch-flask:[镜像版本号]
而我们需要打包的是配置好项目的那个特有容器,也就是打包2.3中特定的【容器id】,采用命令:docker commit 【容器id】 镜像仓库名:版本号
例如:
docker commit 0317bd0a9172 registry.cn-hangzhou.aliyuncs.com/wjl_a/pytorch-flask:2.0

可以看到采用官网给出的命令打包的是之前未配置的pytorch/pytorch。所以这里一定要注意
在这里插入图片描述
进入我们的新打包的2.0的镜像容器看到与配置的项目一致(若采用官网命令下面两个框的内容是没有的!):
在这里插入图片描述

3.1 上传容器

先登录阿里云:docker login --username=她活在凡尘 registry.cn-hangzhou.aliyuncs.com
在这里插入图片描述
将镜像推送到Registry:

docker push registry.cn-hangzhou.aliyuncs.com/wjl_a/pytorch-flask:[镜像版本号]

在这里插入图片描述

3.2 拉取容器

利用别的设备拉取已上传至阿里云仓库的镜像:
从Registry中拉取镜像:docker pull registry.cn-hangzhou.aliyuncs.com/wjl_a/pytorch-flask:2.0

在这里插入图片描述

3.3 测试

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48994268/article/details/119858200