• Docker镜像构建之docker commit


    我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部署工作中解放出来了,但是在实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可。

    ​ Docker 支持自己构建镜像,还支持将自己构建的镜像上传到公共仓库,镜像构建可以通过以下两种方式来实现:

    • docker commit:从容器创建一个新的镜像;
    • docker huild:配合 Dockerfile 文件创建镜像;

    示例:通过 docker commit 来实现镜像的构建,通过基础镜像 centos:7,将 jdk 和 Tomcat 安装在该镜像中制作成一个新的镜像。

    1、创建容器#

    # 拉取镜像
    docker pull centos:7
    
    # 创建容器
    docker run -id --name centos7 centos:7
    

    2、拷贝资源#

    将宿主机的 jdk 和Tomcat 拷贝到容器

    docker cp jdk-11.0.7_linux-x64_bin.tar.gz centos7:/root
    docker cp apache-tomcat-9.0.39.tar.gz centos7:/root
    

    3、安装资源#

    # 进入容器
    docker exec -it centos7 /bin/bash
    

    在容器中执行以下操作:

    # 切换到 /root 目录
    cd root/
    
    # 创建 Java 和 Tomcat 目录
    mkdir -p /usr/local/java
    mkdir -p /usr/local/tomcat
    
    # 将 jdk 和 Tomcat 解压到容器的 Java 和 Tomcat 目录中
    tar -zxvf jdk-11.0.6_linux-x64_bin.tar.gz -C /usr/local/Java/
    tar -zxvf apache-tomcat-9.0.39.tar.gz -C /usr/local/tomcat/
    
    # 在环境变量文件中添加以下内容
    export JAVA_HOME=/usr/local/java/jdk-11.0.6/
    export PATH=$PATH:$JAVA_HOME/bin
    
    # 重新加载环境变量文件
    source /etc/profile
    
    # 测试环境变量是否配置成功
    [root@f1cd1a3df1ed etc]# java -version
    java version "11.0.7" 2020-04-14 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)
    

    4、构建镜像#

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    
    docker commit -a="xiaoyang" -m="jdk11 and tomcat" centos7 mycentos:7
    
    • -a:提交的镜像作者;
    • -c:使用 Dockerfile 指令来创建镜像;
    • -m:提交时的说明文字;
    • -p:在 commit 时,将容器暂停;

    image-20220331163547657

    5、使用构建的镜像创建容器#

    # 创建容器
    docker run -id --name mycentos7 -p 8080:8080 mycentos:7
    
    # 进入容器
    docker exec -it mycentos7 /bin/bash
    
    # 重新加载配置文件
    source /etc/profile
    
    # 测试 Java 环境变量
    [root@7ed6a969f63a /]# java -version
    java version "11.0.7" 2020-04-14 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)
    
    # 启动 Tomcat
    /usr//local/tomcat/apache-tomcat-9.0.39/bin/startup.sh
    
  • 相关阅读:
    软考复习(二):操作系统
    java计算机毕业设计开放式教学评价管理系统源码+mysql数据库+系统+lw文档+部署
    JavaScript、Java、C#标记过时方法
    【Windows篇】Telnet指令介绍以及telnet测试端口连接示例
    六、K8S之StatefulSet
    基于Redis实现特殊的消息队列
    汽车行业分论坛 | 让数据行驶在“安全道”
    数学建模学习(104):线性回归和多元回归【补充版】
    【面试经典150 | 矩阵】矩阵置零
    【DSP】【第三篇】C6678启动过程
  • 原文地址:https://www.cnblogs.com/XiaoYang-sir/p/16085482.html