掌握CentOS7环境下的Docker使用(二)创建自定义镜像、构建java环境

自定义镜像的作用

在我们创建一个容器的时候,使用了基础镜像,但是在工作等使用中基础镜像是不能满足需要的,而且在容器中安装了jdk、mysql等等之后一旦删除掉了容器,容器里面的配置也被删掉了。

这样我们可以把一个已经配置好了的容器打包成镜像,想用的时候直接使用即可。

docker目前镜像的制作有两种方法:

  • 基于Docker Commit制作镜像
  • 基于dockerfile制作镜像,Dockerfile方式为主流的制作镜像方式

Commit构建自定义镜像

对容器的修改以及保存

启动并进入容器:
docker run -it centos:7 /bin/bash

在/usr/local 路径下创建demo目录:
mkdir /usr/local/demo

安装ifconfig命令:
yum -y install net-tools

退出容器后
构建镜像:
docker commit 4eb9d14ebb18 mycentos:7
docker commit -a "XD" -m "mkdir /home/xdclass" 4eb9d14ebb18 mcentos:7
-a:标注作者
-m:说明注释
再查询镜像就有了:
在这里插入图片描述
删除原来的容器,使用自定义的镜像重新创建,查看容器的demo文件夹还在不在、ifconfig有没有:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

退出容器后,可以查看详细信息(镜像和容器都可以):
docker inspect [ID]

Dockerfile构建镜像

dockerfile文件:

# this is a dockerfile
FROM centos:7
MAINTAINER zyTen 123456@qq.com
RUN echo "running..."
WORKDIR /usr/local/demo	# 指明工作路径,没有会进行创建
COPY 123.txt /usr/local/demo	# 123.txt存放位置与dockerfile存放位置要相同
RUN yum install -y net-tools

构建:
docker build -t mycentos:dockerfile .

查看镜像,进入验证:验证成功
在这里插入图片描述在这里插入图片描述在这里插入图片描述

dockerfile常用命令

  • FROM
    基于哪个镜像
  • MAINTAINER
    注明作者
  • COPY
    复制文件进入镜像(只能用相对路径,不能用绝对路径)
  • ADD
    复制文件进入镜像(假如文件是.tar.gz文件会解压
  • WORKDIR:
    指定工作目录,假如路径不存在会创建路径
  • ENV
    设置环境变量
  • EXPOSE
    暴露容器端口
  • RUN
    在构建镜像的时候执行,作用于镜像层面
  • ENTRYPOINT
    在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条
  • CMD
    在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条
    容器启动后执行默认的命令或者参数,允许被修改
    命令格式:
    shell命令格式:RUN yum install -y net-tools
    exec命令格式:RUN [ "yum","install" ,"-y" ,"net-tools"]

虚拟机(宿主机)构建java环境

下载jdk和Tomcat压缩包

在这里我将压缩包放在创建好的/root/test目录下,解压缩后,将解压后的文件移动到创建好的/usr/local/jdk目录下

官网下载jdk->地址:https://www.oracle.com/java/technologies/downloads/
在这里插入图片描述

官网下载Tomcat->地址:https://tomcat.apache.org/download-80.cgi
在这里插入图片描述
或者使用wget下载Tomcat:

yum install -y wget
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.43/bin/apachetomcat-8.5.43.tar.gz

本地文件上传到虚拟机中:
在这里插入图片描述

解压缩

解压:

tar -xf apache-tomcat-8.5.87.tar.gz
tar -xf jdk-8u361-linux-x64.tar.gz

在这里插入图片描述

配置jdk、检验

移动jdk文件:
在这里插入图片描述
添加配置环境

# 打开文件
vi /etc/profile

# 插入到文件的最后位置
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

# 退出文件后执行
source /etc/profile

检验:配置成功
java -version
在这里插入图片描述

启动tomcat

移动Tomcat文件:
在这里插入图片描述

进入/usr/local/tomcat/bin目录下,执行./startup.sh启动Tomcat
在这里插入图片描述

使用虚拟机的ip地址和8080端口访问,检验是否启动成功:
在这里插入图片描述

Dockerfile构建java环境

tomcat运行:前台运行;后台运行
使用./startup.sh后台运行,如果使用dockerfile执行这个命令会导致自动退出,所以需要使用前台运行./catalina.sh run
在这里插入图片描述

dockerfile编写

FROM centos:7
ADD jdk-8u211-linux-x64.tar.gz /usr/local
RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk
ENV JAVA_HOME=/usr/local/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
ADD apache-tomcat-8.5.35.tar.gz /usr/local
RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

构建容器

docker build -t mycentos:jdk .
在这里插入图片描述

运行容器

运行之前,先打开一下防火墙:docker start firewalld.service

运行容器docker run -itd -p 80:8080 mycentos:jdk /bin/bash
-p 80:8080:把容器中暴露出来的8080端口映射给宿主机的80端口
测试:
在这里插入图片描述
挂载目录,运行容器:docker run -itd -p 8080:8080 -v /root/test/ROOT:/usr/local/tomcat/webapps/ROOT mycentos:jdk /bin/bash

-v /root/test/ROOT:/usr/local/tomcat/webapps/ROOT:挂载目录,/root/test/ROOT挂载到/usr/local/tomcat/webapps/ROOT

/usr/local/tomcat/webapps/ROOT:tomcat发布目录

宿主机创建/root/test/ROOT目录,并创建一个html文件:
在这里插入图片描述

测试:
在这里插入图片描述

可能出现的问题

创建的容器分配不到ip,没有网络

解决方法:创建虚拟机的iso镜像文件是否是最新的?不是的话去下载一个新的→地址:
https://mirrors.aliyun.com/centos/7/isos/x86_64/?spm=a2c6h.25603864.0.0.33324511p08phk
选择带DVD的

或者使用我下载的文件:
链接:https://pan.baidu.com/s/1PmNramL-PnsIkD-W_9pOFg?pwd=037p
提取码:037p

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆两块钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值