通过这个案例把之前学的docker知识串一串
1. 先创建一个带有ssh服务的centos镜像,当然也可以直接下tomcat镜像,但是如果公司用的话可能需要指定版本,jdk之类的,还是需要自己做镜像的,这里顺便练下做镜像。
运行一个centos容器,主机没有的话会自动去下载镜像再启动
在容器中输入sshd命令,此时是没有ssh服务
安装sshd服务
启动sshd服务,会报下面错误
执行下面命令
修改配置
把UsePAM设置成no
设置密码
退出容器准备为容器创建镜像,记住此时容器 id 为377.....
docker commit 377 sshd-centos:centos
这个时候我们可以启动容器看是否能够外部访问
docker run -p 10022:22 -d sshd-centos:centos /usr/sbin/sshd -D启动容器并将主机的10022端口映射成容器的22端口
通过主机访问
ssh root@localhost -p 10022
上面我们的ssh服务的centos镜像就完成了。
2.做tomcat镜像,创建一个Tomcat文件夹,从官网上下载jdk的tar文件解压到Tomcat文件夹,创建 Dockerfile
文件和run.sh文件,下载tomcat压缩文件解压。完成后,目录文件如下:
编辑dockerfile文件,编写下面代码
#继承的镜像
FROM sshd-centos:centos
#作者信息
MAINTAINER chenglei "ischenglei@126.com"
#把当前目录下的jdk文件夹添加到镜像
ADD jdk7 /jdk7
#把当前目录下的tomcat文件夹添加到镜像
ADD tomcat7 /tomcat7
#把当前目录下的run.sh添加到镜像
ADD run.sh /run.sh
#添加环境变量
ENV JAVA_HOME /jdk7
ENV CATALINA_HOME /tomcat7
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#修改权限
RUN chmod +x /*.sh
RUN chmod +x /tomcat7/bin/*.sh
#暴露8080端口
EXPOSE 8080
#启动时运行tomcat
CMD ["/run.sh"]编辑run.sh文件
#!/bin/bash
#启动ssh
/usr/sbin/sshd -D &
#启动tomcat
exec ${CATALINA_HOME}/bin/catalina.sh run生成镜像文件
docker bulid -t tomcat:cl .
通过docker images查看
启动我们的镜像
docker run -ti -p 8888:8080 tomcat:cl
将主机的端口8888绑定容器端口8080
启动成功后我们通过ip:8888即可访问我们的容器tomcat
来源:CSDN
作者:vajenec-cl
链接:https://blog.csdn.net/qq_27696513/article/details/79214983