Docker 7 docker在阿里云的使用詳解
在傳統(tǒng)模式中,開發(fā)團(tuán)隊(duì)在開發(fā)環(huán)境中完成軟件開發(fā),自己做了一遍單元測(cè)試, 測(cè)試通過,ᨀ交到代碼版本管理庫。運(yùn)維把應(yīng)用部署到測(cè) 試環(huán)境, QA 進(jìn)行測(cè)試,沒問題后通知部署人員發(fā)布到生產(chǎn)環(huán)境。 在上述過程中涉及到至少三個(gè)環(huán)境:開發(fā)、測(cè)試和生產(chǎn)?,F(xiàn)實(shí)情況是,開發(fā)自測(cè) 沒問題,但到了測(cè)試或者生產(chǎn)環(huán)境程序無法運(yùn)行,讓開發(fā)團(tuán)隊(duì)排查,經(jīng)過長(zhǎng)時(shí)間 排查最后發(fā)現(xiàn)是測(cè)試環(huán)境的一個(gè)第三方庫過時(shí)了。這樣的現(xiàn)象在軟件開發(fā)中很普 遍,已經(jīng)不適用如今的快速開發(fā)和部署。docker可以滿足你的需求。
阿里云容器hub開發(fā)者平臺(tái),可以去這里下載需要的鏡像
https://dev.aliyun.com/search.html?spm=5176.1972343.0.1.MSG1P3
首先先查看內(nèi)核版本,這一步很重要
# uname -a
查看系統(tǒng)內(nèi)核版本,docker要求內(nèi)核版本為3.10以上,建議(不要在centos6.6上面安裝使用docker,有很多坑,我就是一個(gè)個(gè)踩過來的)
我使用的是阿里云的ECS centos 6.6 64位的,所以需要升級(jí)內(nèi)很,內(nèi)核版本升級(jí)的方法:
# 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
最后重啟服務(wù)器
開始安裝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會(huì)很快
啟動(dòng)docker
# /etc/init.d/docker start # chkconfig docker on
運(yùn)行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鏡像到本地,因?yàn)榕渲昧税⒗镌歧R像加速,所以下載非常快,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 運(yùn)行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 進(jìn)入容器 969a是容器的ID
Docker啟動(dòng)容器命令在前面已經(jīng)詳細(xì)的講過,不會(huì)的童鞋可以到我之前的博客看看
重點(diǎn)來了
java+tomcat在容器中應(yīng)用
測(cè)試環(huán)境服務(wù)器配置 centos 6.6 64位,4核處理器,8G內(nèi)存
理論上可以跑16個(gè)java容器,因?yàn)槊總€(gè)容器消耗內(nèi)存為500M左右,我在上面跑了8個(gè)java容器,另外跑了一個(gè)nginx做反向代理和一個(gè)redis,nginx 和redis都沒有使用docker
需要前提下載好jdk1.7.0.72和 tomcat ,并把他們放在和Dockerfile同一級(jí)目錄
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 . 后面有一個(gè)點(diǎn),一定要記住 # 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,把根目錄掛在在宿主機(jī)的/mnt/docker/myapp/ROOT/biz目錄下面,當(dāng)更新代碼的時(shí)候,直接把代碼傳到這個(gè)目錄,然后重啟一下容器就可以了,不需要把代碼上傳到容器里面,那樣很麻煩。
[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寫自己本機(jī)內(nèi)網(wǎng)的IP或者公網(wǎng)IP都可以 # docker push IP:5000/whh/biz_tomcat:v1 推送到自己私有的倉庫,從其他的服務(wù)器就可以直接pull下來使用 00:19:15 2016-11-16
以上所述是小編給大家介紹的Docker 7 docker在阿里云的使用詳解,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的,在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Ubuntu 搭建基于Docker的LNMP+Redis的開發(fā)環(huán)境(圖文)
這篇文章主要介紹了Ubuntu 搭建基于Docker的LNMP+Redis的開發(fā)環(huán)境的相關(guān)資料,這里詳細(xì)介紹如何搭建的步驟,并附圖文,需要的朋友可以參考下2016-12-12
docker 安裝部署 Prometheus 與grafana的詳細(xì)過程
本文給大家詳細(xì)介紹了如何在CentOS 7上使用Docker和Docker Compose安裝和配置Prometheus和Grafana,并展示了如何進(jìn)行基本的監(jiān)控配置和數(shù)據(jù)可視化,感興趣的朋友跟隨小編一起看看吧2024-12-12
docker將本地鏡像發(fā)布到阿里云的實(shí)現(xiàn)方法
本文主要介紹了docker將本地鏡像發(fā)布到阿里云的實(shí)現(xiàn)方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
詳解在Docker容器內(nèi)外互相拷貝數(shù)據(jù)的方法
本篇文章主要介紹了詳解在Docker容器內(nèi)外互相拷貝數(shù)據(jù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項(xiàng)目
本文主要介紹了jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05

