PS:实际开发,我们希望镜像能包含整个项目的完整环境,在其他机器上拉取打包完整的环境,直接运行即可
-
docker commit:从容器创建一个新的镜像
-
docker build:配合dockerfile创建镜像
5.1创建容器
#拉取镜像 docker pull nginx #创建容器 docker run -di --name centos7 centos:7
5.2拷贝资源
#拷贝宿主机根目录下的资源到centos7容器的root目录下 docker cp /root/apache-tomcat-9.0.52.tar.gz centos7:/root docker cp /root/jdk-11.0.12_linux-x64_bin.tar.gz centos7:/root
5.3安装资源
#进入容器内 docker exec -it centos7 /bin/bash #确认复制结果 cd root ls #创建java和tomcat目录 mkdir -p /usr/local/java mkdir -p /usr/local/tomcat #解压jdk和tomcat tar -zxvf apache-tomcat-9.0.52.tar.gz -C /usr/local/tomcat tar -zxvf jdk-11.0.12_linux-x64_bin.tar.gz -C /usr/local/java
#配置java jdk环境 vi /etc/profile #找到export那行,回车添加配置信息
export JAVA_HOME=/usr/local/java/jdk-11.0.12 export PATH=$PATH:$JAVA_HOME/bin
#重新加载环境变量文件 source /etc/profile #检查java版本 java -version #启动tomcat cd /usr/local/tomcat/apache-tomcat-9.0.52/ #跳转到tomcat目录 bin/startup.sh #启动tomcat #删除安装包 bin/shutdown.sh #关闭tomcat cd /root #回到根目录 rm apache-tomcat-9.0.52.tar.gz jdk-11.0.12_linux-x64_bin.tar.gz -rf #删除文件
5.4构建镜像
docker commit -a="sdy" -m="tomcat9 and jdk11" centos7 mycentos:7
-
-a:提交镜像的作者
-
-m:镜像的描述
-
-c:使用dockfile指令来创建镜像
-
-p:在commit时,将容器暂停
#用自定义镜像创建容器 docker run -di --name mycentos7 -p 8080:8080 mycentos:7 #验证镜像是否为打包时的样子 docker exec -it mycentos7 bash #进入容器命令行模式 source /etc/profile #启用配置 java -version #查看java版本 cd /usr/local/tomcat/apache-tomcat-9.0.52/ #跳到tomcat目录 bin/startup.sh #启动tomcat #浏览器查看http://192.168.146.124:8080/,成功。(IP为VM装的centos的宿主机IP,端口为创建容器时的指定端口)