docker commit:根据容器的更改创建新镜像。
本次示例制作一个tomcat镜像。
目录
一、拉取一个基础镜像
其实就是OS操作系统。tomcat得跑在操作系统上吧,本次使用centos。
docker pull centos
二、创建一个交互式容器
三、文件上传
将准备好的Tomcat、jdk文件,从宿主机上传到容器中。
四、在容器中安装jdk
可以使用命令进行安装:yum search jdk 选择要安装的版本,然后yum install jdk。
本次对上传的jdk压缩包进行解压安装。
第一步:解压
tar -xzvf jdk-8u261-linux-x64.tar.gz -C ./
第二步:配置JAVA_HOME。编辑/etc/profile文件,添加如下内容
JAVA_HOME=/opt/jdk1.8.0_261 export PATH=$JAVA_HOME/bin:$PATH
保存后,重新编辑。
[root@2b7e1b81b61a opt]# source /etc/profile
验证配置是否成功。
[root@2b7e1b81b61a opt]# java -version java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
五、在容器中安装tomcat
[root@2b7e1b81b61a opt]# tar -xzvf apache-tomcat-7.0.106.tar.gz
此时直接运行tomcat启动命令,提示配置JAVA_HOME。
编辑tomcat/bin/setclasspath.sh文件,添加如下内容:
export JAVA_HOME=/opt/jdk1.8.0_261
六、将容器提交为一个新的镜像
[root@localhost opt]# docker commit jackcentos jacktomcat:20201011
sha256:bfe4ccf88331ebb5c78811c2e454f46fa73a8bf8b9af122e94046ca5af43f61e
[root@localhost opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jacktomcat 20201011 bfe4ccf88331 11 seconds ago 766MB
centos latest 0d120b6ccaa8 2 months ago 215MB
hello-world latest bf756fb1ae65 9 months ago 13.3kB
[root@localhost opt]#
七、使用制作的镜像,创建新容器
[root@localhost opt]# docker run -itd --name container3 -p 9999:8080 jacktomcat:20201011 /bin/bash
b19ddda6c20aca60b73a6481bd4a9b2407cb3d66e4ff954d8009ce07f90b7083
[root@localhost opt]#
其中 -p 9999:8080 是将容器的8080端口,(映射)发布到宿主机的9999端口。
八、启动tomcat,进行验证
[root@localhost opt]# docker exec container3 /opt/apache-tomcat-7.0.106/bin/startup.sh
Tomcat started.
[root@localhost opt]#
宿主机访问http://192.168.42.169:9999