1、镜像是什么?
2、如何上传、下载镜像?
3、怎么自己创建镜像?
答案:
1、镜像 是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
2、 上传命令语法: docker push [OPTIONS] NAME[:TAG]
下载命令语法:docker pull [OPTIONS] NAME[:TAG]
3、 用两种方式创建自己的镜像:
第一种:用下载的镜像进行二次修改,创建成自己的。
1)编写Dockerfile文件
vim mydockerfile-centos
FROM centos MAINTAINER hehe<12345@qq.com> ENV MYPATH /usr/local WORKDIR $MYPATH RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD echo $MYPATH CMD echo "-----end----" CMD /bin/bash
2)使用此文件创建镜像
docker build -f mydockerfile-centos -t mycentos:0.1 .
成功提示!
3)测试
第二种:用dockerfile 构建一个完整的镜像。
1)注意:必须关闭宿主机防火墙、setenforce
创建目录及文件
镜像文件:Dockerfile
编写说明文件:readme.txt
tomcat 、 jdk安装包
创建数据卷目录
test 、tomcatfile
2、编写Dockerfile
FROM centos MAINTAINER hehe<12345@qq.com> #基础镜像,一切从这里构建 COPY readme.txt /usr/local/readme.txt #复制文件 ADD jdk-8u231-linux-x64.tar.gz /usr/local/ #复制解压 ADD apache-tomcat-9.0.54.tar.gz /usr/local/ #复制解压 RUN yum -y install vim ENV MYPATH /usr/local #设置环境变量 WORKDIR $MYPATH #设置工作目录 ENV JAVA_HOME /usr/local/jdk1.8.0_231 #设置环境变量 ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54 #设置环境变量 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib #设置环境变量 分隔符是: EXPOSE 8080 #设置暴露的端口 CMD /usr/local/apache-tomcat-9.0.54/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.54/logs/catalina.out # 设置默认命令
3、构建镜像
若dockerfile命名使用默认命名即Dockerfile, 则不用使用-f 指定文件
docker build -t mytomcat:0.1 .
成功如下图:
验证:
4、用此镜像,启动容器
命令:docker run -d -p 8080:8080 --name tomcat99 -v /test:/usr/local/apache-tomcat-9.0.54/webapps/test -v /tomcatlogs/:/usr/local/apache-tomcat-9.0.54/logs mytomcat:0.1
执行结果:
4、 验证:宿主机访问
扩展:使用shell脚本一键构建Tomcat镜像
1)创建目录
mkdir /web
2)创建脚本:
vim build_images.sh
#!/bin/bash #定义变量 CODE_DIR=/web/ #编写说明文件 cd $CODE_DIR && touch readme.txt #编写镜像文件 cat > /web/Dockerfile << a FROM centos MAINTAINER hehe<12345@qq.com> COPY readme.txt /usr/local/readme.txt ADD jdk-8u231-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-9.0.54.tar.gz /usr/local/ RUN yum -y install vim ENV MYPATH /usr/local WORKDIR /$MYPATH ENV JAVA_HOME /usr/local/jdk1.8.0_231 ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54 ENV PATH /$PATH:/$JAVA_HOME/bin:/$CATALINA_HOME/lib EXPOSE 8080 CMD /usr/local/apache-tomcat-9.0.54/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.54/logs/catalina.out a #构建镜像 cd $CODE_DIR && docker build -t mytomcat:0.1 . #启动容器 docker run -d -p 8080:8080 --name tomcat99 -v /test:/usr/local/apache-tomcat-9.0.54/webapps/test -v /tomcatlogs/:/usr/local/apache-tomcat-9.0.54/logs mytomcat:0.1
3)脚本赋予执行权:
chmod +x build_images.sh
4)执行前检查,不要有同名文件,还有Tomcat8080端口不能占用
验证:结果和上面一样



