栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

脚本一键构建docker镜像

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

脚本一键构建docker镜像

思考三个问题

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端口不能占用
验证:结果和上面一样


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361874.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号