歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> docker-7 docker在阿裡雲的使用,docker-7docker

docker-7 docker在阿裡雲的使用,docker-7docker

日期:2017/3/3 18:08:02   编辑:學習Linux

docker-7 docker在阿裡雲的使用,docker-7docker

docker-7 docker在阿裡雲的使用,docker-7docker


在傳統模式中,開發團隊在開發環境中完成軟件開發,自己做了一遍單元測試, 測試通過,ᨀ交到代碼版本管理庫。運維把應用部署到測 試環境, QA 進行測試,沒問題後通知部署人員發布到生產環境。 在上述過程中涉及到至少三個環境:開發、測試和生產。現實情況是,開發自測 沒問題,但到了測試或者生產環境程序無法運行,讓開發團隊排查,經過長時間 排查最後發現是測試環境的一個第三方庫過時了。這樣的現象在軟件開發中很普 遍,已經不適用如今的快速開發和部署。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.conf

default=0    把default=1 改為default = 0

最後重啟服務器

開始安裝docker

# curl -sSL https://get.docker.com/ | sh  

# docker --version
Docker 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 centos
latest: Pulling from centos
3690474eb5b4: Already exists 
af0819ed1fac: Already exists 
05fe84bf6d3f: Already exists 
97cad5e16cb6: Already exists 
Digest: sha256:934ff980b04db1b7484595bac0c8e6f838e1917ad3a38f904ece64f70bbca040
Status: Image is up to date for centos:latest

從阿裡雲私有鏡像倉庫拉取centos鏡像到本地,因為配置了阿裡雲鏡像加速,所以下載非常快,30秒鐘搞定。

# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos 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 NAMES

969ad48e4085 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 #ADD ADD jdk1.7.0_72.gz /usr/local/ ADD biz-tomcat.tar.gz /usr/local/ #RUN RUN yum -y install wget gcc gcc-c++ make openssl openssl-devel net-tools vim RUN mkdir /docker/myapp/ROOT -p #ENV ENV JAVA_HOME /usr/local/jdk1.7.0_72 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib ENV PATH $PATH:$JAVA_HOME/bin ENV CATALINA_HOME /usr/local/biz-tomcat EXPOSE 8080 CMD ["/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 NAMES
969ad48e4085 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

http://xxxxxx/Linuxjc/1172791.html TechArticle

Copyright © Linux教程網 All Rights Reserved