打包容器

打包容器



【任务】

已经在超算(Centos)上部署了一个miniconda的容器,并且建立了名称为“AI”的环境用于AI算法测试。现在想将整个容器(包括容器内关联的共享文件夹内的测试文件)移植到本地电脑(Windows)。

本地电脑已经安装了Docker Desktop。

【步骤】

1、使用export打包容器

在超算相应文件夹内,使用命令打包容器成压缩包文件:

docker export -o MiniConda_byp_export.tar MiniConda_byp

2、下载压缩包文件到本地电脑

3、使用import命令将压缩包导入为镜像

cd D:BypProjectBakDocker
d:
docker import MiniConda_byp_export.tar MiniConda_byp:v022
docker import MiniConda_byp_export.tar miniconda_byp:v022

注意:会提示仓库/repository不能为大写。另外,Docker Desktop也同时显示导入的镜像(见下图)

4、建立容器

如果只是用命令建立容器会报错:

docker run -itd --name miniAI miniconda_byp:v022

提示缺少命令。

可以使用命令:docker ps  --no-trunc,查询该容器的命令COMMAND:
MiniConda_byp 84b8693cbb04ec686a4f5f0e7c14c42c3251442d241b863cc34df26c190de114   sha256:4c533a0cfa563012cc0feba440a63aed78032fa8162e9bc85d60a02062047c24   "bash"  3 weeks ago    Up 13 days
因此需要在run命令后加上bash:
docker run -itd --name miniAI miniconda_byp:v022 bash

不过由于原来的容器建立的时候是关联了一个共享文件夹,打包出来的容器其实是不包括这个关联共享文件夹的内容的:

上图图1可见,并未打包共享文件夹;上图图2是超算上面的共享文件夹内容。

5、重新来一次

将关联的共享文件夹内容,即test文件夹移动到容器内的文件夹,然后再用export打包——下载——import导入镜像——run创建容器....

docker export -o MiniConda_byp_export.tar MiniConda_byp
docker import MiniConda_byp_export.tar miniconda_byp:v023
docker run -itd --name miniAI miniconda_byp:v023 bash
最后进入容器,找到测试的文件夹test,进入conda环境,运行python程序:





BypInformation