docker镜像构建之docker commit.md
创建容器
# 拉取镜像
docker pull centos:7
# 创建容器
docker run -id --name centos7 centos:7
拷贝资源
# 将宿主机的 jdk 和 tomcat 拷贝至容器
docker cp apache-tomcat-9.0.54.tar.gz centos7:/root
docker cp jdk-8u162-linux-x64.tar.gz centos7:/root
安装资源
# 进入容器
docker exec -it centos7 bash
--------------------以下操作都在容器内部执行-----------
# 切换至 /root 目录
cd root/
# 创建java 和 tomcat 目录
mkdir /usr/local/java
mkdir /usr/local/tomcat
# 创建 jdk 和 tomcat 解压至容器中
tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/local/java/
tar -zxvf apache-tomcat-9.0.54.tar.gz -C /usr/local/tomcat/
# 配置 jdk 环境变量
vi /etc/profile
# 在profile文件中添加以下内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 重新加载环境变量文件
source /etc/profile
# 测试环境变量是否配置成功
[root@08d69be92bce ~]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
# 删除容器内 jdk 和 tomcat
rm jdk-8u162-linux-x64.tar.gz apache-tomcat-9.0.54.tar.gz -rf
构建镜像
docker commit [OPTIONS] ConTAINER [REPOSITORY[:TAG]]
docker commit -a="oxyay" -m="jdk1.8 and tomcat9" centos7 mycentos:7
- -a:提交的镜像作者;
- -c:使用 Dockerfile 指令来创建镜像;
- -m:提交时的说明文字;
- -p:在commit时,将容器暂停。
[root@localhost ~]# docker commit -a="oxyay" -m="jdk1.8 and tomcat9" centos7 mycentos:7
sha256:7bfee664ea6028acd5c20ee19919b7f1333117ccc366c9c939124d96d9927916
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos 7 7bfee664ea60 10 seconds ago 605MB
centos 7 eeb6ee3f44bd 4 weeks ago 204MB