docker 根据dockerfile创建镜像

原文传送:传送门

DockerFile

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

构建步骤:

  • 编写dockerfile文件
  • docker build构建成镜像
  • docker run
  • docker push 发布镜像
  • docker hub
  • 阿里云仓库
1
2
3
4
5
6
7
8
9
10
11
12
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
[root@localhost tomcat]# docker exec -it d7c23048c6c7 /bin/bash
[root@d7c23048c6c7 local]# ls
apache-tomcat-7.0.107  bin  etc  games    include  jdk1.8.0_271  lib  lib64  libexec  sbin  share  src
[root@d7c23048c6c7 local]# 
--------------
FROM java:8
ADD ./target/demo-v1.jar /app/demo-v1.jar
EXPOSE 1234
ENTRYPOINT ["java","-jar","/app/demo-v1.jar","&"]

 

FROM centos
MAINTAINER haoyun<740933114@qq.com>

-
posted @   天妖姥爷  阅读(351)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示