一 、环境准备
1、Docker Desktop
通过可视化界面将极大的降低学习难度。
1.1、Docker Desktop下载
下载地址:Docker Desktop: The #1 Containerization Tool for Developers | Docker
应当是这个界面,选择下载即可
1.2、下载完成后需打开window自带的虚拟机
将Hyper-V勾选即打开,勾选后需重启。
1.3、下载WSL,由于是在windows下进行打包,而docker使用的是linux内核,故需要下载WSL
安装详见: 安装 WSL | Microsoft Learn
1.4、若安装成功,应出现如下界面:
注意:刚下载好没有容器是对的,因为还没有创建
2、VScode: 通过VScode创建Dockerfile
假设你现在已经拥有了VScode并且可以使用它
2.1、创建Dockerfile文件
我更推荐直接在VScode中创建
2.1.1、打开工程主路径,即该文件夹下包括你所有的工程代码,在该路径下创建Dockerfile
如此创建
2.1.2、编辑Dockerfile文件
FROM python:3.10-slim #使用python基础镜像
WORKDIR workspace #创建在镜像/容器内代码的地址
COPY . . #将物理电脑这个文件夹内的所有代码复制到镜像的workspace内
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
#安装代码运行所需环境
RUN pip install opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple
#yolo系列会报一个有关so的错误,下载这个即可
CMD ["python3","val.py"] #创建命令
注意,workspace十分重要,不要在WORKDIR这一行内使用任何Windows路径,因为容器内为linux路径,两者混用将会产生错误。
3、通过创建的Dockerfile创建镜像
3.1、打开命令行端口,到达工程代码所在主路径
通过指令创建镜像:
通过指令由镜像创建容器/由DockerdDesktop创建容器
由指令创建:docker run -itd --name name-you-want-container -p 8899:80 name-you-want /bin/bash
由DeskTop创建:
点击run创建容器
可以看到代码已经存入至容器内,并且由于在创建Dockerfile时已经内置了CMD,所以在创建容器时会自动跑代码
若能跑出结果,则说明正确,若是出现某些代码上的bug,修一下就好了。
3.2、打包镜像
导出镜像:
docker export -o busybox2.tar busybox2
导入镜像:
docker import busybox2.tar busybox2:test #:后的test可改为其他词语,相当于一个特殊的标签
验证导出的镜像能不能用
docker run -it busybox2:test sh
以我的为例,该句代码应为:
docker run -it 我的镜像名:test python3 workspace/val.py