docker 根据dockerfile创建镜像

发布时间 2023-03-24 14:28:07作者: 天妖姥爷

原文传送:传送门

DockerFile

dockerfile 时用来构建docker 镜像的文件,命令参数脚本

构建步骤:

  • 编写dockerfile文件
  • docker build构建成镜像
  • docker run
  • docker push 发布镜像
  • docker hub
  • 阿里云仓库
from				#基础镜像
maintainer	                #作者
run				#构建时运行的命令
add				#需要的文件,添加到镜像,想层级关系一样,在基础上叠加层
workdir			        #如/bin/bash,进入到工作目录
volume 			        #挂载卷
export			        #暴露端口
cmd				#指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
entrypoint	                #指定这个容器启动时要运行的命令,可以追加命令
onbuild		   	        #构建一个被继承的dockerfile,这个指令就会运行,作为一个触发指令
copy				#类似add,将文件拷贝到镜像中
env				#构建时设置环境变量

  

  • 编写dockerfile

#编写dockerfile 文件,在创建镜像时去下载vim和net-tools
[root@localhost dockerfile]# cat mydockerfile 
FROM centos

MAINTAINER haoyun<740933114@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH
#设置工作目录

RUN yum -y install vim
RUN yum -y install net-tools
#安装vim和net-tools

EXPOSE 80
#开放端口

CMD echo $MYPATH
#输出工作目录
CMD echo "---end---"
CMD /bin/bash 
#进入/bin/bash目录
#构建镜像
[root@localhost dockerfile]# docker build -f mydockerfile -t mycentos:1.0 .
#构建image ,不要漏掉结尾有个点
Successfully built b814a074fd27
Successfully tagged mycentos:1.0
[root@localhost dockerfile]# docker run -it mycentos:1.0 /bin/bash
[root@72e699904ab5 local]# pwd 
/usr/local
[root@72e699904ab5 local]# 
#启动执行时直接到了/usr/local目录
#这是通过dockerfile设置的,ENV MYPATH
#vim和ifconfig也可以使用了

实践Tomcat image

  • 准备tomcat压缩包

  • 编写dockerfile文件,官方命名Dockerfile,build会自动寻找这个文件,不需要-f指定

  • ADD命令会自动解压

FROM centos
MAINTAINER haoyun<740933114@qq.com>


ADD jdk-8u271-linux-x64.tar /usr/local
ADD apache-tomcat-7.0.107.tar /usr/local

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.107
ENV CATALINA_BASH /usr/local/apache-tomcat-7.0.107
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-7.0.107/bin/startup.sh && tail -F /usr/local/apache-tomcat-7.0.107/logs/catalina.out
docker build -t haoyuncentos:1.0 .

Successfully built 449e85c62b91
Successfully tagged haoyuncentos:1.0