Docker镜像构建之docker|Docker镜像构建之docker commit
我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部署工作中解放出来了,但是在实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可。
【Docker镜像构建之docker|Docker镜像构建之docker commit】? Docker 支持自己构建镜像,还支持将自己构建的镜像上传到公共仓库,镜像构建可以通过以下两种方式来实现:
docker commit
:从容器创建一个新的镜像;docker huild
:配合 Dockerfile 文件创建镜像;
示例:通过1、创建容器docker commit
来实现镜像的构建,通过基础镜像centos:7
,将 jdk 和 Tomcat 安装在该镜像中制作成一个新的镜像。
# 拉取镜像
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
推荐阅读
- unity|微信SDK 接入xcode构建时,libiPhone-lib.a报错的问题
- 摇滚开源人CC(热爱足球音乐,做工业互联网生态构建者!)
- 使用Docker安装Nginx并配置端口转发问题及解决方法
- 笔记|Docker 使用代理
- java|ubuntu docker遇到的一些问题
- maven|Maven的下载与配置(包含阿里云镜像配置)
- Apache|Apache Pulsar结合Hudi构建Lakehouse方案分析
- 解决Docker容器下不能使用vim命令的问题
- Jenkins|Jenkins + GitLab 自动化构建部署项目
- docker|docker+wordpress搭建个人博客(如何在阿里云服务器上线部署个人博客)