Docker:搭建開發環境(運行Eclipse等圖形化界面程序)


Docker搭建開發環境

基本說明

兩個月前的時候自己提出想通過Docker來搭建開發環境(http://blog.csdn.net/zhaodedong/article/details/46549279),能方便地供實驗室的其他同學使用。我所謂的開發環境沒太復雜,只是能在一個docker鏡像中運行Mysql、Jdk、Eclipse等基本的軟件,但是Eclipse是需要能通過Docker啟動可視化的界面。

最后這些功能的確能實現了,但是由於經常要在Windows中用PowerDesigner、Visio設計個數據庫畫個流程圖什么的,Linux就不常作為桌面用了。因此對於Docker最初的設想就沒有使用,時隔兩個月,記錄一下之前的學習過程。

編寫Dockerfile

我使用了Dockerfile來描述開發環境,下面是我寫的一個只安裝Eclipse的Dockerfile,諸如mysql,jdk什么的比較簡單就不再寫進來了。

FROM ubuntu:14.04

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list

RUN apt-get update && apt-get install -y libgtk2.0-0 libcanberra-gtk-module
RUN apt-get install -y eclipse

# Replace 1000 with your user / group id
RUN export uid=1000 gid=1000 && \
    mkdir -p /home/developer && \
    echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
    echo "developer:x:${uid}:" >> /etc/group && \
    echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
    chmod 0440 /etc/sudoers.d/developer && \
    chown ${uid}:${gid} -R /home/developer

USER developer
ENV HOME /home/developer
CMD /usr/bin/eclipse

Docker Build

不多做描述,網上有很多教程講Docker的基本操作。

docker build -t eclipse .

啟動可視化的Eclipse

里面有的參數我也不是特別熟悉,由於沒有深入研究Docker的各個參數,現在也只是處於知其然而不知其所以然的境界。

docker run -ti --rm \
       -e DISPLAY=$DISPLAY \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       eclipse

注意

中國的防火牆技術特別強大,但是網上的很多教程要不就是國外的要不就是國內拿過來隨便翻譯的,在這些教程里面經常會出現RUN apt-get update 這樣的一個操作,這樣是行不通的…….

解決方式就是我在Dockerfile里面寫的,自己來修改Ubuntu的源,由於是在學校,我用的是清華的源,效果還是不錯的。

總結

Docker是個很好玩的東西,對於比較喜歡新技術的人來說是一個非常值得嘗試的對象。但是有點遺憾,以后的學習和工作不一定能用到Docker了,因此再學習Docker也只能是自己的業余愛好中玩一玩了。

最初中想在Docker中搭建一個Hadoop集群的,但是發現如果固定了Docker的IP后,在Docker中安裝Hadoop其實和在虛擬機中的操作沒什么太大的區別,就沒有再花時間具體的操作。

倒是看到了一些有趣的開源項目,直接編寫的Dockerfile來配置和安裝一個Hadoop集群,以后感興趣的話可能會具體地嘗試一下。

參考

國內在Docker方面的資料還有所欠缺,至少在6月份我找資料的時候在各大博客網站中沒有找到我需要的資料,謹列出對我幫助最大的幾個。

http://www.tuicool.com/articles/ayIzI3
http://blog.zenika.com/index.php?post/2014/10/07/Setting-up-a-development-environment-using-Docker-and-Vagrant
http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/

文章來源:http://blog.csdn.net/zhaodedong


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM