目录
制作Dockfile文件
下面是一个Dockfile样本以及四个容易出现错误的地方,Dockfile详细的解释见链接
# 基础镜像
FROM nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04
# 配置程序依赖环境,示例如下
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential cmake libjpeg-dev libpng-dev && \
rm -rf /var/lib/apt/lists/*
# 将所需內容复制容器内,表示在/workspace路径下
COPY CODE /workspace
# 确定容器启动时程序运行路径
WORKDIR /workspace
# 设置默认执行命令
CMD ["python", "run.py", "/input_path", "/output.path"]
构建命令:
构建镜像
docker build -t newImageID .
构建容器
sudo docker run -d -i -t newImageID /bin/bash
一、FROM 父镜像
沒有父镜像,可以参照我上一个博客,pull一个你所需的基础镜像
二、RUN命令
1、安装所需包
因为安装pip失败,我选择是在镜像中先安装anaconda
遇到问题:
安装opencv-python包缺少一些库:如ImportError: libSM.so.6: cannot open shared object file: No such file or directory
原因是缺少共享文件库,解决办法如下:
- 安装apt-file
apt-get update #更新安装源
apt-get install apt-file #安装apt-file
apt-file update #更新安装源
- 寻找依赖库
apt-file search libSM.so.6
- 根据提示,安装合适的依赖库(注意库名是小写,后面数字为版本)
apt-get install libsm6
2、其它命令(如创建文件夹)
RUN mkdir /workspace
三、COPY命令
COPY 本机路径 镜像路径
注意本机路径是相对于Dockfile文件,否则会报路径错误,如下:
将Dockfile与所需文件放置一个文件夹内,并 cd test
copy命令: copy . /workspace ,但是会把Dockfile也拷贝到镜像
或者新建一个文件把darknet_docker放入其中,copy命令: copy newdir /workspace
四、CMD命令
要指定python路径,在~/.bashrc指定PATH路无效
vim ~/.bashrc #修改文件,添加python PATH路径
source ~/.bashrc #使修改有效
在CMD命令如下面,运行成功
CMD ["/root/anaconda3/bin/python", "/workspace/python/detect.py"]
否则会报找不到python的错误。
https://blog.csdn.net/deng624796905/article/details/86493330