1.在Dockerfile中使用ubuntu:18.04作为基础镜像时需要安装 一些必要的包:
2.Dockerfile:
FROM ubuntu:18.04
#FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 #深度学习基础镜像(自带cudnn)
#cuda版本根据自己电脑上cuda版本来事先拉取镜像 例如:docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04
#nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 #(不带cudnn)
MAINTAINER wjy
ENV MYPATH /usr/
WORKDIR $MYPATH
#ADD sources.list /etc/apt/
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
apt-utils curl g++ \
cmake \
git \
wget \
libgtk2.0-dev \
pkg-config \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libdc1394-22-dev\
libtiff-dev \
libpng-dev \
libjpeg-dev \
libtbb-dev \
libtbb2 \
libopencv-dev \
libsnappy-dev \
libatlas-base-dev \
liblapack3 \
python-dev \
python-pip \
tzdata \
vim
CMD echo $MYPATH
CMD echo "success--------ok!"
CMD /bin/bash
#libpng16-dev (ubuntu16.04需要这个库,18不需要)
3.镜像构建成功后会出现有些包找不到,对于自己放进去的程序 可以用 ldd ./可执行文件
查看那些库文件缺少 可以在网上查到 用 apt-get install 包的名字
来下载。一般都会下载到
或者在其他存在这个包的位置 使用CP命令拷过来,千万不能用 Ctrl + c Ctrl + v 不然还是会找不到。
4.对于我来说 上次的程序就缺少一个包libjasper.so.1,使用apt-get install 下载不了,原因大概是下载源的问题 Ubuntu18.04的源版本号是bionic,里面没有这个包,所以需要添加新的源。
最后找到方法:
在容器中
命令:
apt-get install python-software-properties
apt-get install python-software-properties
但是亲测安装后还是报command not found,所以依赖包还没有安装完全,少了什么呢?
执行命令:add-apt-repository ,提示要安装python-software-properties外还需要software-properties-common
ok,执行安装命令:
apt-get install software-properties-common
执行:
add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
apt update
apt install libjasper1 libjasper-dev
就可以啦!