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:
JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:
J
R
E
H
O
M
E
/
l
i
b
:
JRE_HOME/lib:
JREHOME/lib:CLASSPATH
ENV PATH
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo “success--------------ok”
CMD /bin/bash