创建一个MXNET和Scala的Docker环境

因为MXNET的scala接口目前不支持windows, 所以在周末做了一个MXNET和Scala的Docker,顺便跑跑看MXNET0.94版本有什么新的东西。这个Docker测试了两天,用起来还不错,于是把制作过程记录下来以备参考。相关的步骤:

1、  安装Docker.  https://www.docker.com/

2、启动Docker, 下载MXNET对应的DOCKER文件。https://hub.docker.com/r/kaixhin/mxnet/

启动Docker的时候会自动创建一个名称为default的虚拟机,并打开一个Docker客户端窗口。在客户端窗口输入命令:

docker pull kaixhin/mxnet

备注:这个不是官方版本,但是比官方版本的Docker文件要新。此外,这个是基于CPU的版本。想要GPU版本请浏览https://hub.docker.com/r/kaixhin

这个Dcoker文件大概有500多M,中国的网络你知道的,要准备好比较快的网络。否则…

 

3、创建共享目录和运行kaixhin/mxnet的容器

启动Docker自带的VirtualBox管理器,为default的虚拟机设置共享目录。例如,我本地的F:\win_folder,共享文件名是win_folder。

 

切换到Docker客户端窗口, 输入命令:

mkdir -p /home/docker/vm_folder

sudo mount -t vboxsf win_folder /home/docker/vm_folder

这两句命令把前面设置的共享目录win_folder和vm_folder挂接在一起。

 

启动容器:

docker run -it -v /home/docker/vm_folder:/container_folder  kaixhin/mxnet bash

这一行命令把共享目录映射到容器里的/container_folder, 并且启动容器。容器启动完后自动切换到mxnet目录下。例如,

root@6ab51b5fcbe9:~/mxnet#

 

4、安装JDK

首先手工下载jdk linux 64位版本。然后在Dcoker客户端输入:
sudo mkdir /usr/lib/jvm
sudo tar zxvf jdk-8u121-linux-x64.tar.gz -C /usr/lib/jvm
cd /usr/lib/jvm
ls
sudo mv jdk1.8.0_121 java

 

安装vim

sudo apt-get install vim-gtk

 

sudo vim ~/.bashrc

加入如下内容

export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 

export PATH=${JAVA_HOME}/bin:$PATH

 

配置默认JDK版本

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/bin/java 300 
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/bin/javac 300 
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java/bin/jar 300  
sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java/bin/javah 300  

sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java/bin/javap 300

 

然后执行

sudo update-alternatives --config java

 

 

5、安装maven

首先手工下载maven. 然后在Dcoker客户端输入:
sudo mkdir /usr/lib/maven
$ sudo tar zxvf apache-maven-3.3.9-bin.tar.gz -C /usr/lib/maven
$ cd /usr/lib/maven
$ls
$ sudo mv apache-maven-3.3.9 maven
 
$ sudo vim ~/.bashrc
在文件末尾追加:
# set maven environment
export M2_HOME=/usr/lib/maven/maven
export PATH=$M2_HOME/bin:$PATH
export  MAVEN_OPTS="-Xms256m -Xmx512m"
 
使环境变量生效
source ~/.bashrc

验证maven是否安装成功。

$ mvn –version

6、编译、打包生成支持scala的jar包和so文件

在Docker客户端窗口输入:

cd  /root/mxnet/

make scalapkg

这个编译打包的过程时间有些长,因为会从网络下载大概200多M的各种jar包。

这个命令结束后,会生成几个jar包,包括:

mxnet-core_2.11-0.1.2-SNAPSHOT-sources.jar (mxnet java接口源代码包)

mxnet-core_2.11-0.1.2-SNAPSHOT.jar(mxnet java接口包)

mxnet-full_2.11-linux-x86_64-cpu-0.1.2-SNAPSHOT.jar(大而全的编译用的包。里面包含mxnet java实现包和scala包以及slf4j包)

 

7、安装scala

首先下载scala-2.11.8.tgz。 因为Mxnet本身用的就是2.11.8,所以配合着下载这个版本。

在Dcoker客户端输入:

sudo mkdir /usr/lib/scala
$ sudo tar xvf scala-2.11.8.tgz -C /usr/lib/scala
$ cd /usr/lib/scala
$ls
 
$ sudo vim ~/.bashrc

在最后部分添加

#set scala

export SCALA_HOME=/usr/lib/scala/scala-2.11.8

export PATH=$PATH:${SCALA_HOME}/bin

 

重新生效

source ~/.bashrc

 

测试

scala –version

这样这个docker基本上就配置好了,可以在里面跑用Python,java和scala对mxnet进行调用的程序。

8、对容器提交前面所作的修改。(这步不要忘了)

在Dcoker客户端输入:

exit

docker ps –a

这一行会列出当前的所有容器。例如,

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES

6ab51b5fcbe9        mxnet3              "bash"              15 hours ago        Exited (0) 50 seconds ago                       trusting_stonebraker

留意一下你的CONTAINER ID,例如这里的6ab51b5fcbe9 。 下面会以6ab51b5fcbe9这个ID的容器提交修改。输入命令:

docker commit 6ab51b5fcbe9  mxnet

这行命令的意思是把6ab51b5fcbe9这个ID的容器提交并制作一个镜像image, 这个镜像的名字是mxnet。

命令执行完后将生成一个新的image mxnet。 这个mxnet的镜像将保存着我们前面所作的那些改动内容。

使用查看image命令

docker images

将会显示所有的image. 例如,

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

mxnet              latest              68c8459ff149        15 hours ago        2.4 GB

 

最后提醒,在下一次启动容器的时候,我们需要从镜像mxnet来启动,而不是原来的kaixhin/mxnet。

启动mxnet容器的命令:

docker run -it -v /home/docker/vm_folder:/container_folder  mxnet bash

 

转载于:https://my.oschina.net/qinhui99/blog/868276

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值