Docker镜像构建之docker commit的使用

 更新时间:2022年04月02日 15:16:19   作者:Mr-Yang  
本文主要介绍了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 时,将容器暂停;

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

到此这篇关于Docker镜像构建之docker commit的使用的文章就介绍到这了,更多相关docker commit内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker-compose安装部署NebulaGraph图数据库的详细过程

    docker-compose安装部署NebulaGraph图数据库的详细过程

    NebulaGraph Studio是一款可以通过Web访问的开源图数据库可视化工具,搭配NebulaGraph内核使用,提供构图、数据导入、编写nGQL查询等一站式服务,这篇文章主要介绍了docker-compose安装部署NebulaGraph图数据库的详细过程,感兴趣的朋友一起看看吧
    2023-12-12
  • Docker安装Jenkins的实现步骤

    Docker安装Jenkins的实现步骤

    版本与jdk版本以及各类插件有对应关系,所以普通安装较为麻烦,本文主要介绍了Docker安装Jenkins的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程

    Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程

    这篇文章主要介绍了Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • docker使用阿里云镜像仓库的方法

    docker使用阿里云镜像仓库的方法

    本篇文章主要介绍了docker使用阿里云镜像仓库的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 用Docker快速构建LEMP环境的方法示例

    用Docker快速构建LEMP环境的方法示例

    这篇文章主要介绍了用Docker快速构建LEMP环境的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Docker虚拟桌面的实现示例

    Docker虚拟桌面的实现示例

    在Docker中创建虚拟桌面环境,是使用Docker容器技术来运行一个完整的桌面环境,例如 Windows、Linux 或者 macOS 的桌面,这可以通过几种不同的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-09-09
  • docker-compose启动redis多机集群的实现(6台服务器3主3从)

    docker-compose启动redis多机集群的实现(6台服务器3主3从)

    本文主要介绍了docker-compose启动redis多机集群的实现(6台服务器3主3从),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 从零开始:Docker中修改Nginx服务器配置

    从零开始:Docker中修改Nginx服务器配置

    在Docker中修改Nginx配置是一种常见的操作,它允许我们根据特定需求来自定义Nginx服务器的行为,通过修改Nginx配置,我们可以添加新的虚拟主机、更改端口号、启用SSL等,需要的朋友可以参考下
    2023-10-10
  • Docker网络配置与自定义IP容器通信

    Docker网络配置与自定义IP容器通信

    IP地址是Docker容器在网络中的唯一标识,每个Docker都会被分配一个 IP,用于网络通信,本文主要介绍了Docker网络配置与自定义IP容器通信,感兴趣的可以了解一下
    2024-03-03
  • Docker 中快速安装tensorflow环境的方法步骤

    Docker 中快速安装tensorflow环境的方法步骤

    这篇文章主要介绍了Docker 中快速安装tensorflow环境的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10

最新评论