一,新建ubuntu镜像
首先从docker里拉取ubuntu16.04镜像
docker search ubuntu:16.04 #搜寻16.04镜像
docker pull ubuntu:16.04 #载入镜像到本地
docker run -it ubuntu:16.04 /bin/bash #运行镜像
二,添加vim
进入镜像之后
apt-get update #更新源
apt-get install vim #安装vim
三,添加java
java8下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解压: tar -xzvf jdk-8u121-linux-x64.tar.gz
将解压后的文件挂载或拷贝到docker里
挂载模式:
①首先退出docker: exit
②查看container ID: docker ps -l
③挂载
docker run -it --privileged -v /home/xll/xll:/home/xll ubuntu:vim /bin/bash
--privileged:以特权方式启动容器
-v:挂载 前一个路径是想要挂载的文件源,后一个路径是将要挂载到容器里面的路径
注:两个路径都需要写绝对路径,容器中将挂载内容删除之后,相应的宿主内的文件也会被删除
拷贝模式:
①获得容器ID全称
docker inspect -f '{{.Id}}' 23151caaf358(container ID)
②docker拷贝
docker cp <源路径> <container ID 全称>:<目标路径>
eg:docker cp /usr/lib/ 23151caaf3586dcd...sdes:/usr/
进入docker安装java
docker exec -it 23151caaf358 /bin/bash
到挂载或复制的目录下 mv jdk-8u121-linux-x64 /usr/lib/jvm
添加环境变量
vi ~/.bashrc
export PATH=/usr/lib/jvm$PATH
source ~/.bashrc
测试java是否安装成功
java -version
若显示版本信息则表示安装成功
四,安装matlab
由于docker里面用xming也没能启动安装界面,只能进行静默安装模式
关于远程如何启动图形界面及远程matlab安装方法可参见另一篇博客:
https://blog.csdn.net/xll_bit/article/details/80821520
①挂载或复制matlab安装包到docker里,方法同上
②复制两个iso文件到一个目录(由于matlab2017a有两个iso文件,在安装的时候需要再次挂载,而现在不能弹窗就会导致安装有问题,因此可以先将两个iso复制到一个目录,然后安装)
mount -t auto -o loop *dvd1.iso所在的绝对路径 /home/<user name>/temp
cp -r /home/<user name>/temp /home/<user name>/Matlab
umount /home/<user name>/temp
mount -t auto -o loop *dvd2.iso所在的绝对路径 /home/<user name>/temp
cp -r /home/<user name>/temp /home/<user name>/Matlab
umount /home/<user name>/temp
③安装
/home/<user name>/Matlab/install -mode silent -fileInstallationKey 29797-39064-48306-32452 -agreeToLicense yes
④破解
mkdir /usr/local/MATLAB/R2017a/bin/licenses/
cp license_standalone.lic所在的目录 /usr/local/MATLAB/R2017a/bin/licenses/ %%注意后面的licenses不要输错
cp libmwservices.so所在的目录 /usr/local/MATLAB/R2017a/bin/glnxa64/
⑤添加环境变量
vi ~/.bashrc
添加:
export PATH=/usr/local/MATLAB/R2017a/bin:$PATH
source ~/.bashrc
这样直接在命令行输入 matlab 就可以打开了
注:这时若提示少 .so的库,可将宿主机相关的库拷到容器里即可。
五,提交镜像
docker commit -m='matlab' -a='xll' 23151caaf358 ubuntu:matlab
-m:提交信息描述
-a:作者信息描述
23151...58:container ID
ubuntu:matlab :目标镜像名
六,保存镜像为文件
docker save -o 要保存的文件名 要保存的镜像
eg:docker save -o /mnt/ubuntu16.04_matlab2017a.tar ubuntu16.04
七,从文件下载镜像
docker load --input 文件
或: docker load < 文件名