在傳統模式中,開發團隊在開發環境中完成軟件開發,自己做了一遍單元測試, 測試通過,?交到代碼版本管理庫。運維把應用部署到測 試環境, QA 進行測試,沒問題后通知部署人員發布到生產環境。 在上述過程中涉及到至少三個環境:開發、測試和生產?,F實情況是,開發自測 沒問題,但到了測試或者生產環境程序無法運行,讓開發團隊排查,經過長時間 排查最后發現是測試環境的一個第三方庫過時了。這樣的現象在軟件開發中很普 遍,已經不適用如今的快速開發和部署。docker可以滿足你的需求。
阿里云容器hub開發者平臺,可以去這里下載需要的鏡像
https://dev.aliyun.com/search.html?spm=5176.1972343.0.1.MSG1P3
首先先查看內核版本,這一步很重要
# uname -a
查看系統內核版本,docker要求內核版本為3.10以上,建議(不要在centos6.6上面安裝使用docker,有很多坑,我就是一個個踩過來的)
我使用的是阿里云的ECS centos 6.6 64位的,所以需要升級內很,內核版本升級的方法:
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm# yum --enablerepo=elrepo-kernel install kernel-lt -y# vim /etc/grub.confdefault=0 把default=1 改為default = 0
最后重啟服務器
開始安裝docker
# curl -sSL https://get.docker.com/ | sh # docker --versionDocker version 1.7.1, build 786b29d# vim /etc/sysconfig/docker other_args="--registry-mirror=https://rr8hxwoy.mirror.aliyuncs.com -H tcp://0.0.0.0:235 -H unix:///var/run/docker.sock" 配置阿里云加速 docker pull會很快
啟動docker
# /etc/init.d/docker start# chkconfig docker on
運行docker容器
# docker pull centoslatest: Pulling from centos3690474eb5b4: Already exists af0819ed1fac: Already exists 05fe84bf6d3f: Already exists 97cad5e16cb6: Already exists Digest: sha256:934ff980b04db1b7484595bac0c8e6f838e1917ad3a38f904ece64f70bbca040Status: Image is up to date for centos:latest
從阿里云私有鏡像倉庫拉取centos鏡像到本地,因為配置了阿里云鏡像加速,所以下載非???,30秒鐘搞定。
# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEcentos latest 97cad5e16cb6 12 days ago 196.5 MB# docker run -d -it centos /bin/bash 運行centos容器# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES969ad48e4085 centos "/bin/bash" 5 seconds ago Up 4 seconds jovial_torvalds# docker exec -it 969a /bin/bash 進入容器 969a是容器的ID
Docker啟動容器命令在前面已經詳細的講過,不會的童鞋可以到我之前的博客看看
重點來了
java+tomcat在容器中應用
測試環境服務器配置 centos 6.6 64位,4核處理器,8G內存
理論上可以跑16個java容器,因為每個容器消耗內存為500M左右,我在上面跑了8個java容器,另外跑了一個nginx做反向代理和一個redis,nginx 和redis都沒有使用docker
需要前提下載好jdk1.7.0.72和 tomcat ,并把他們放在和Dockerfile同一級目錄
vim Dockerfile#This is My first Dockerfile#version 1.0#Base image FROM centos:latest#MAINTAINER hh Wang#ADDADD jdk1.7.0_72.gz /usr/local/ADD biz-tomcat.tar.gz /usr/local/#RUNRUN yum -y install wget gcc gcc-c++ make openssl openssl-devel net-tools vimRUN mkdir /docker/myapp/ROOT -p#ENVENV JAVA_HOME /usr/local/jdk1.7.0_72ENV JRE_HOME $JAVA_HOME/jreENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/libENV PATH $PATH:$JAVA_HOME/binENV CATALINA_HOME /usr/local/biz-tomcatEXPOSE 8080CMD ["/usr/local/biz-tomcat/bin/catalina.sh","run"]# docker build -t whh/biz_tomcat:v1 . 后面有一個點,一定要記住# docker run -it -d -v /mnt/docker/myapp/ROOT/biz:/docker/myapp/ROOT -v /var/log/biz-tomcat/logs:/usr/local/biz-tomcat/logs -p 9080:8080 --name biz whh/biz_tomcat:v1
tomcat的根目錄要事先修改為自己需要的路徑,我這里為docker/myapp/ROOT,把根目錄掛在在宿主機的/mnt/docker/myapp/ROOT/biz目錄下面,當更新代碼的時候,直接把代碼傳到這個目錄,然后重啟一下容器就可以了,不需要把代碼上傳到容器里面,那樣很麻煩。
[root@VM_159_91_centos biz]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES969ad48e4085 centos "/bin/bash" 21 minutes ago Up 21 minutes jovial_torvalds f67257661e70 registry "/entrypoint.sh /etc 7 hours ago Up 7 hours 0.0.0.0:5000->5000/tcp high_darwin 4bcc381f5b9f whh/biz_tomcat:v1 "/usr/local/biz-tomc 9 hours ago Up 7 hours 0.0.0.0:9080->8080/tcp biz# docker tag whh/biz_tomcat:v1 IP:5000/whh/biz_tomcat:v1 IP寫自己本機內網的IP或者公網IP都可以# docker push IP:5000/whh/biz_tomcat:v1 推送到自己私有的倉庫,從其他的服務器就可以直接pull下來使用00:19:15 2016-11-16
以上所述是小編給大家介紹的Docker 7 docker在阿里云的使用詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的,在此也非常感謝大家對VEVB武林網網站的支持!
新聞熱點
疑難解答
圖片精選