docker--制作自己的镜像(二)

前面从理论的角度给大家介绍了两种制作镜像的方式,这篇文章我们将针对第一种方式即使用dockerfile的方式来制作一个集成了ssh与tomcat的镜像文件。

首先为大家说明一下制作这个镜像所要达到的目标,其一我们希望这个镜像能够通过xshell进行连接,其二我们希望通过xhsell来控制tomcat的启动与停止,并且可以向tomcat中部署程序,达到制作一次镜像可以为多个项目服务的目的,为了达到这个目的,我们还需要上传我们制作完毕的镜像到网易蜂巢。

下面为大家介绍一下我们需要用到的一些资源,首先是基础镜像,这里我们采用centos的镜像作为基础镜像,由于从docker官网下载很慢,所以我们从国内的镜像仓库进行下载,我这里使用的镜像仓库是网易蜂巢。我们需要准备应用程序,包括jdk与tomcat,我这里使用的jdk1.8与tocmat7,还可以准备一个测试使用的war包。

1.我们先编辑Dockerfile

在linux中执行 vi Dockerfile命令,编辑Dockerfile,下面是dockerfile的具体内容,直接贴出来了

from hub.c.163.com/library/centos:latest
MAINTAINER zw 894904692@qq.com
# 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no  
RUN yum install -y openssh-server sudo  
# 初始化ssh登陆
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
RUN echo "RSAAuthentication yes" >> /etc/ssh/sshd_config
RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config   
   
# 添加测试用户admin,密码admin,并且将此用户添加到sudoers里  
RUN useradd admin  
RUN echo "admin:admin" | chpasswd  
RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers 
# 安装jdk  
RUN mkdir -p /zw/java/jdk1.8
ADD jdk /zw/java/jdk1.8
RUN chmod -R 777 /zw/java/jdk1.8
#安装tomcat
RUN mkdir -p /zw/tomcat/tomcat7
ADD tomcat7 /zw/tomcat/tomcat7
RUN chmod -R 777 /zw/tomcat/tomcat7
#设置环境变量
ENV JAVA_HOME /zw/java/jdk1.8
ENV PATH $PATH:$JAVA_HOME/bin  
#设置容器中的环境变量
RUN echo "export JAVA_HOME=/zw/java/jdk1.8" >> /etc/profile
RUN echo "export PATH=$JAVA_HOME/bin:$PATH " >> /etc/profile
RUN echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar " >> /etc/profile
#设置tomcat中catalina.sh的环境变量,否则tomcat停止时会报错
RUN sed -i '1i\export JAVA_HOME=/zw/java/jdk1.8' /zw/tomcat/tomcat7/bin/catalina.sh
RUN sed -i '1i\export JRE_HOME=/zw/java/jdk1.8/jre' /zw/tomcat/tomcat7/bin/catalina.sh
#使环境变量立即生效
RUN source /etc/profile
# 启动sshd服务并且暴露22端口  
EXPOSE 22  
EXPOSE 8080
ENTRYPOINT ./zw/tomcat/tomcat7/bin/startup.sh &&  /usr/sbin/sshd -D
有了dockerfile,剩下的步骤就很简单了,我们只需要执行命令: docker build -t IMAGENAME:TAG . 就可以生成我们自己的tomcat镜像。

生成镜像以后我们可以使用命令:docker run -d -p 2222:22 -p 8085:8080 IMAGENAME:TAG 来运行镜像生成容器,之后我们可以使用xhsell连接容器,注意指定端口为2222。

也可以访问ip:8085来查看tomcat是否启动。可以通过xshell来停止与启动tomcat,也可以向tomcat中放入项目进行测试。

下面是在编辑dockerfile时遇到的问题及解决方式:

当我们使用xshell连接容器时,无法停止或启动tomcat,最后发现原因是由于环境变量和权限问题引起的,所以我在dockerfile中执行了chmod -R 777 来赋予权限。在我们停止或启动tomcat时,需要sudo。并在catalina中配置了java与jre,并且为容器配置了java环境变量。

最后为了能够随时使用我们制作完毕的镜像,我们需要把镜像放入网易蜂巢的镜像仓库,具体方式可以查看连接:

http://support.c.163.com/md.html#!计算服务/镜像仓库/使用指南/构建镜像/推送本地镜像.md


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值