在传统模式中,开发团队在开发环境中完成软件开发,自己做了一遍单元测试, 测试通过,ᨀ交到代码版本管理库。运维把应用部署到测 试环境, 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=    把default= 改为default = 

最后重启服务器

开始安装docker

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

# docker --version
Docker version 1.7., 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         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..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..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
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

docker-7 docker在阿里云的使用的更多相关文章

  1. 在centos7上修改docker加速镜像为阿里云

    使用docker pull,命令下载镜像太慢了,默认是从国外的,本文记录下如何配置国内阿里云竞相加速方式. 登录https://cr.console.aliyun.com,如下, 阿里云会为每个用户提 ...

  2. Docker镜像加速==》阿里云加速器

    1.使用阿里云加速器加快获取docker官方的镜像 步骤一:如果没有阿里云账号,需要注册阿里云开发账号 https://dev.aliyun.com/ 步骤二:进入加速器页面获取加速信息 https: ...

  3. docker镜像上传阿里云仓库

    推送至阿里云镜像:1.首先在阿里云上选择容器镜像服务,创建命名空间以及镜像仓库2. docker login --username=zhangshitongsky@163.com registry.c ...

  4. Eova 怎么放在 Docker中,使用阿里云流水线构建Eova!!

    Eova 快速开发框架不做过多解释,使用起来超级爽提高了我们的开发效率. 有要了解的可以去官网看下http://www.eova.cn/ 最近我们想在docker中运行并且使用阿里云的云效工具去构建部 ...

  5. Docker镜像发布到阿里云

    登录阿里云Docker Registry $ sudo docker login --username=xxx@xxx.com registry.cn-hangzhou.aliyuncs.com 从R ...

  6. Docker for windows10 配置阿里云镜像

    到官网下载 并且 安装 Docker for windows  (注意 官方要求 windows10 是企业版才行  天朝你懂的 ) 关于 Docker for windows  要求有  带有 hy ...

  7. 【docker】【mysql】docker安装mysql,阿里云docker镜像加速器,docker搜索查看远程仓库上的镜像,docker拉取镜像,查看本地所有镜像,查看容器的运行状况,查看容器的详细信息

    在docker上安装mysql有两种方式 1.通过Dockerfile构建 2.直接在docker hub上拉取镜像安装 =================本篇采用方法2=============== ...

  8. 修改docker的地址为阿里云源

    https://blog.csdn.net/jacabe/article/details/78575316

  9. toolbox docker国内镜像(阿里云加速器)

    docker-machine create --engine-registry-mirror=加速地址 -d virtualbox default# 若虚拟机已经创建好docker-machine s ...

  10. 阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json

    这是我们使用阿里云容器服务基于 docker 容器部署 asp.net core 应用遇到的另一个问题 —— 如果将包含敏感信息的应用配置文件 appsettings.Production.json ...

随机推荐

  1. Spring发展历程总结

    目前很多公司的架构,从Struts2迁移到了SpringMVC.你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢? 既然这样,我们从源头说起.Stru ...

  2. Scalaz(55)- scalaz-stream: fs2-基础介绍,fs2 stream transformation

    fs2是scalaz-stream的最新版本,沿用了scalaz-stream被动式(pull model)数据流原理但采用了全新的实现方法.fs2比较scalaz-stream而言具备了:更精简的基 ...

  3. nginx+uwsgi 部署 django

    预装:nginx,  django Django站点tree |Site |-----Blog(自建的项目) |-----Manage.py |-----Site(setting url wsgi-. ...

  4. jQuery Danmmu Player 弹幕视频

    Danmmu Player是基于jQuery的弹幕视频插件.当在看视频的时候,同时发表自己的观点,这样很好的提高用户互动效果.其实也就是在视频界面上做一个滚动展示动画效果,这样的聊天互动视频效果我们叫 ...

  5. 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?

    手机上的APP , 像QQ和微信等都可以在图标上动态显示消息数(最大99) , 那么你有没有想过这些效果是如何实现的?桌面上开发的传统应用程序能否也实现类似的功能? 1 思路 桌面快捷方式的图标本质上 ...

  6. 15款最好的 jQuery Modal(模态窗口)插件

    jQuery 模态窗口插件帮助网站开发人员显示网页中的特定内容,让用户聚焦到这个地方.模态窗口是嵌入到当前网页中,不用重定向到新网页的弹出窗口.这种技术可以用在图像画廊,电子商务网站,登陆框,电子邮件 ...

  7. 20个基于 WordPress 搭建的精美网站

    WordPress 无处不在,小到人博客,大到广受欢迎的各类特色网站,你都能发现 WordPress 的影子,因为它是创建和维护一个网站最容易使用的平台. 另外,网络上有很多资源来创建你的网站,你基本 ...

  8. js异步方式

    node.js的例子 1.回调 创建 main.js 文件 var fs = require("fs"); fs.readFile('input.txt','utf8', func ...

  9. MSCRM 用户登录日志

    MSCRM中关于用户登录信息,默认是不显示的,但是许多客户又有相关的需求. 下面将介绍给大家方法: 一.开启系统审核功能和用户访问审核. 二.打开设置中审核视图. 三.在过滤事件中选择“用户通过web ...

  10. GitHub使用指南

    文章地址:http://www.worldhello.net/gotgithub/index.html