Docker镜像构建之docker commit的使用
目录
- 1、创建容器
- 2、拷贝资源
- 3、安装资源
- 4、构建镜像
- 5、使用构建的镜像创建容器
我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部署工作中解放出来了,但是在实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可。
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
您可能感兴趣的文章
- 02-02hadoop动态增加和删除节点方法介绍
- 02-02干货 | Linux新手入门好书推荐
- 02-02linux系统下MongoDB单节点安装教程
- 02-02Linux下nginx生成日志自动切割的实现方法
- 02-02Centos 6中编译配置httpd2.4的多种方法详解
- 02-02CentOS7 下安装telnet服务的实现方法
- 02-02分布式Hibernate search详解
- 02-02Hadoop对文本文件的快速全局排序实现方法及分析
- 02-02CentOS6.3添加nginx系统服务的实例详解
- 02-02Hadoop编程基于MR程序实现倒排索引示例


阅读排行
推荐教程
- 12-07Tomcat启动报错:严重: Unable to process Jar entry [m
- 12-07解决tomcat启动报错:一个或多个listeners启动失败问题
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07Tomcat配置IPV6的实现步骤
- 12-07tomcat启动报错jar not loaded的问题
- 02-02CentOS7 下安装telnet服务的实现方法
- 12-11docker存储目录迁移示例教程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-07Tomcat部署war包并成功访问网页详细图文教程
- 01-07windows server 2008安装配置DNS服务器




