docker官方和个人发布的镜像由于版本等各种原因,漏洞较多,已统计Docker Hub超过30%的官方镜像包含高危漏洞。此外,由于网络等原因也会造成docker pull下载镜像的速度很慢。基于这种情况,我们可以手动定制docker系统镜像。构建镜像的方式有两种:
1.使用 docker commit命令
2.使用 docker build和Dockerfile文件
docker commit:提交一个正在运行的容器为一个新的镜像
制作步骤:制作一个tomcat镜像
1.拉取一个基础镜像(其实就是OS)
docker pull centos
2.创建一个交互式容器
docker run -it --name=mycentos centos /bin/bash
3.软件上传:将宿主机Tomact、jdk上传到容器中
docker cp apache‐tomcat mycentos:/root/
docker cp jdk mycentos:/root/
4.在容器中安装jdk和Tomcat
tar -zxvf jdk-8u11-linux-x64.tar.gz -C /usr/local
vi /etc/profile
在末尾行添加
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_11
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
source /etc/profile 立即生效配置
tar -zxvf apache-tomcat-8.5.51.tar.gz -C /usr/local/
vi ./bin/setclsspath.sh
export JAVA_HOME=/usr/local/jdk1.8.0_11
export JRE_HOME=/usr/local/jdk1.8.0_11/jre
5.将正在运行的容器提交为一个新的镜像
docker commit mycentos mytomcat
使用制作的镜像创建容器:
docker run -itd --name=t1 -p 8888:8080 mytomcat /bin/bash
docker exec t1 usr/local/apache-tomcat-8.5.51/bin/startup.sh
容器/镜像打包:
镜像打包:
1、镜像打包:
docker save -o /root/tomcat8.5.tar mytomcat
2、将打包的镜像上传到其他服务器
scp tomcat8.5.tar 其他服务器ip:/root
3、导入镜像
docker load ‐i /root/tomcat8.5.tar
容器打包:
1、容器打包
docker export ‐o /root/t1.tar t1
2、导入容器
docker import t1.tar mytomcat