设为首页 收藏本站
查看: 1385|回复: 0

[经验分享] Docker学习---web应用部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-13 08:00:10 | 显示全部楼层 |阅读模式
  <span style=&quot;font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);&quot;>关于Docker的下载和安装网上很多教程,大家可以自行百度..</span>
  这里记载一下我在使用docker中遇到的问题
  


  ============================================学习的分割线========================================
  OS:osx
  第一步:因为是osx的系统,所以先下载安装了boot2docker。
  

zengzhuomin:~$ boot2docker init
Virtual machine boot2docker-vm already exists
zengzhuomin:~$ boot2docker up
Waiting for VM and Docker daemon to start...
..........................................................................o
Started.
Writing /Users/zengzhuomin/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/zengzhuomin/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/zengzhuomin/.boot2docker/certs/boot2docker-vm/key.pem
Your environment variables are already set correctly.

启动boot2docker后,就可以正常使用docker命令了。  
  


  第二步:搭建一个有java环境的镜像。其中选用jdk7
  1. 创建ubuntu-java7文件夹,并在下面创建Dockerfile
  cd ~/workspace/docker/ubuntu-java7
vim Dockerfile

  Dockerfile内容如下:

# Version: 0.0.1
FROM ubuntu:14.04
MAINTAINER Griselda &quot;zhuomin_girl@126.com&quot;
ENV REFRESHED_AT 2015-08-18
RUN (echo &quot;deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse&quot; > /etc/apt/sources.list && echo &quot;deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse&quot; >> /etc/apt/sources.list)
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-7-jre-headless
RUN apt-get clean
RUN update-alternatives --display java
RUN echo &quot;JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64&quot; >> /etc/environment
  2. 执行Dockerfile,创建镜像
  docker build -t ubuntu-java7 .

3. 测试镜像
  zengzhuomin:~/workspace/docker/ubuntu-java7$ docker run -ti ubuntu-java7 java -version
java version &quot;1.7.0_79&quot;
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

第三步:搭建一个有tomcat服务器的环境,要在ubuntu-java7的镜像上建立
  1. 创建ubuntu-tomcat7文件夹,并在下面创建Dockerfile
  cd ~/workspace/docker/ubuntu-tomcat7
vim Dockerfile

Dockerfile内容如下:
  # Version: 0.0.1
FROM javaweb/dockerfile
MAINTAINER Griselda &quot;zhuoming_girl@126.com&quot;
ENV REFRESHED_AT 2014-08-18
ENV TOMCATVER 7.0.63
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y wget
RUN (wget -O /tmp/tomcat7.tar.gz http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v${TOMCATVER}/bin/apache-tomcat-${TOMCATVER}.tar.gz && \
cd /opt && \
tar zxf /tmp/tomcat7.tar.gz && \
mv /opt/apache-tomcat* /opt/tomcat && \
rm /tmp/tomcat7.tar.gz)
ADD ./settom.sh /usr/local/bin/run
EXPOSE 8080
CMD [&quot;/bin/sh&quot;, &quot;-e&quot;, &quot;/usr/local/bin/run&quot;]

这个Dockerfile中提到:要把settom.sh文件加载到容器里,因此我们需要编写一个settom.sh文件。这个文件的作用是tomcat的部署脚本
  #!/bin/bash
ADMIN_USER=${ADMIN_USER:-admin}
ADMIN_PASS=${ADMIN_PASS:-tomcat}
MAX_UPLOAD_SIZE=${MAX_UPLOAD_SIZE:-52428800}
CATALINA_OPTS=${CATALINA_OPTS:-&quot;-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m&quot;}
export CATALINA_OPTS=&quot;${CATALINA_OPTS}&quot;
cat << EOF > /opt/tomcat/conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<user username=&quot;${ADMIN_USER}&quot; password=&quot;${ADMIN_PASS}&quot; roles=&quot;admin-gui,manager-gui&quot;/>
</tomcat-users>
EOF
if [ -f &quot;/opt/tomcat/webapps/manager/WEB-INF/web.xml&quot; ]
then
sed -i &quot;s#.*max-file-size.*#\t<max-file-size>${MAX_UPLOAD_SIZE}</max-file-size>#g&quot; /opt/tomcat/webapps/manager/WEB-INF/web.xml
sed -i &quot;s#.*max-request-size.*#\t<max-request-size>${MAX_UPLOAD_SIZE}</max-request-size>#g&quot; /opt/tomcat/webapps/manager/WEB-INF/web.xml
fi
/bin/sh -e /opt/tomcat/bin/catalina.sh run
~

2. 构建Dockerfile镜像
  zengzhuomin:~/workspace/docker/ubuntu-tomcat$ docker build -t ubuntu-tomcat .

3. 测试镜像
  zengzhuomin:~/workspace/docker/ubuntu-tomcat$ docker run -ti ubuntu-tomcat java -version
java version &quot;1.7.0_79&quot;
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

第三步:搭建fetch环境
  1. 创建ubuntu-fetch文件夹,并在下面创建Dockerfile
  cd ~/workspace/docker/ubuntu-fetch
vim DockerfileDockerfile文件内容如下:
  #Version: 0.0.1
FROM ubuntu:14.04
MAINTAINER Griselda &quot;zhuomin_girl@126.com&quot;
ENV REFRESHED_AT 2014-08-18
RUN apt-get -yqq update
RUN apt-get -yqq install wget
VOLUME [ &quot;/opt/tomcat/webapps/&quot; ]
WORKDIR /opt/tomcat/webapps/
ENTRYPOINT [ &quot;wget&quot; ]
CMD [ &quot;-?&quot; ]

2. 构建Dockerfile镜像
  zengzhuomin:~/workspace/docker/ubuntu-fetch$ docker build -t tomcat-webapp .

3. 加载war文件
  zengzhuomin:~/workspace/docker/ubuntu-fetch$ docker run -ti --name fetch-app feuyeux/tomcat-webapp http://tomcat.apache.org/tomcat-8.0-doc/appdev/sample/sample.war

4. 加载数据卷
  zengzhuomin:~/workspace/docker/ubuntu-fetch$ docker run --name tom-app --volumes-from fetch-app -d -P ubuntu-tomcat

第四步:查看效果
  1. 查看映射的端口号
  zengzhuomin:~/workspace/docker/ubuntu-fetch$ docker port tom-app 8080
0.0.0.0:32768

2. 因为我是使用虚拟机运行docker的,所以登录的时候应该使用boot2docker的ip地址,(ubuntu直接使用localhost:32768即可登录)否则会出现connection refused
  zengzhuomin:~/workspace/docker/ubuntu-fetch$ boot2docker ip
192.168.59.103 DSC0000.jpg




  


  ======================================================总结的分界线=================================================
  在学习docker过程中,搭建过ssh的环境,但是使用ssh连接的时候也是被connection refused了。后来发现果然ip又错了~改正后登录时需要填写密码,密码不正确三次后又被refused了..
  后来使用docker exec -ti 登录容器后,用
  useradd zengzhuomin
  passwd ...
  添加了账号,最后终于成功搭建了ssh服务器

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-126023-1-1.html 上篇帖子: docker进入容器 下篇帖子: 阿里云部署Docker(2)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表