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 rootls#创建java和tomcat目录mkdir -p /usr/local/javamkdir -p /usr/local/tomcat#解压jdk和tomcattar -zxvf apache-tomcat-9.0.52.tar.gz -C /usr/local/tomcattar -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.12export PATH=$PATH:$JAVA_HOME/bin
#重新加载环境变量文件source /etc/profile#检查java版本java -version#启动tomcatcd /usr/local/tomcat/apache-tomcat-9.0.52/ #跳转到tomcat目录bin/startup.sh #启动tomcat#删除安装包bin/shutdown.sh #关闭tomcatcd /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,端口为创建容器时的指定端口)