docker高级笔记(1)

dockerFile

理论:
FROM: 基本上出现第一行,基于哪个镜像

MAINTAINER: 镜像维护者的姓名和邮箱

RUN: 容器构建时需要运行的命令---------命令行命令,例如 RUN yum -y install vim

EXPOSE: 当前容器对外暴露出的端口

WORKDIR: 默认登录的目录,例如 /root

USER: 指定改镜像以什么样的用户去执行,默认root

ENV: 用于构建镜像过程中设置环境变量,例如 ENV一个路径,WORKDIR引用这个路径

VOLUME: 容器数据卷,用于数据保存和持久化工作,相当于-v,数据备份

ADD: 将宿主机下的文件拷贝进镜像且会自动处理url和解压tar压缩包

COPY: 类似ADD,习惯用ADD

CMD:指定容器启动后要干的事,和RUN相似。注意:dockerFile中有多个CMD指令,只有最后一个生效,CMD会被docker run之后的参数替换。和RUN的区别,cmd是在docker run运行,run是在docker build运行

ENTRTPOINT: 用来指定一个容器启动要运行的命令
类似CMD,但是不会被docker run后面的命令覆盖,这些命令行参数会被当做参数送给该指令指定的程序
例子:
FROM nginx
ENTRTPOINT [“nginx”, “-c”] #定参
CMD ["/etc/nginx/nginx.conf"]

实操:
需求: centos7镜像具备vim + ifconfig + jdk8
具体见视频


Dockerfile

FROM centos
MAINTAINER ybd
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAH​OME/lib/dt.jar:JAVA_HOME/lib/tools.jar: J R E H O M E / l i b : JRE_HOME/lib: JREH​OME/lib:CLASSPATH
ENV PATH J A V A H O M E / b i n : JAVA_HOME/bin: JAVAH​OME/bin:PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo “success--------------ok”
CMD /bin/bash

上一篇:Hadoop生态圈(二十九)- MapReduce Reduce阶段核心源码分析


下一篇:uni-app 109生成个人二维码名片