docker入门学习(二):利用Dockfile制作鏡像

目录

 

制作Dockfile文件

一、FROM 父镜像

二、RUN命令

1、安装所需包

 2、其它命令(如创建文件夹)

三、COPY命令

四、CMD命令


制作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文件,否则会报路径错误,如下:

https://stackoverflow.com/questions/46309423/dockerfile-copy-from-a-windows-file-system-to-a-docker-container

将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

https://www.runoob.com/docker/docker-dockerfile.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值