镜像基础参数
# 注释
FROM 指定源镜像 ->FROM cnetos:7
RUN 构建时在镜像中执行的命令 -> RUN mkdir /opt/jdk
COPY/ADD 复制,会自动创建不存在的目录 -> COPY ./dist /code/dist
WORKDIR 用于指定工作目录 -> WORKDIR /code
CMD 启动脚本 -> CMD ["nginx", "./config.sh"]
DockerFile Sample
#镜像
FROM daocloud.io/centos:7
#创建者
MAINTAINER xxxx
#工作目录
WORKDIR /root
#在/opt/下创建jdk目录,用来存放jdk文件
RUN mkdir /opt/jdk
#在/opt/下创建tomcat目录,用来存放tomcat
RUN mkdir /opt/tomcat
#将宿主机的jdk目录下的文件拷至镜像的/opt/jdk目录下
COPY jdk1.8.0_191 /opt/jdk/
#将宿主机的tomcat目录下的文件拷至镜像的/opt/tomcat目录下
COPY apache-tomcat-8.5.32 /opt/tomcat/vim
#设置环境变量 linux中 环境变量用:分割 /xxx/bin:$PATH $PATH即应用原有环境变量内容 :$PATH 是
#:进行分割的意思
ENV JAVA_HOME=/opt/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
#公开端口 EXPOSE的作用:只是说明docker容器开放了哪些端口,并没有将这些端口实际开放了出来!
#更多的作用是告诉运维人员或容器操作人员我开放了容器的哪些端口,只是一种说明。
#第二种作用:#Dockerfile中声明了EXPOSE端口之后,我们使用-P命令进行随机映射的时候,会映射到#EXPOSE声明的端口。
EXPOSE 8080
#设置启动命令
ENTRYPOINT ["/opt/tomcat/bin/catalina.sh","run"]
构建镜像
#后面的.代表的是相对路径的当前目录,如果需要全路径则为/root/docker_demo(就是找到Dockerfile文件)
docker build -t centos . #最后有一个.用来指定构建镜像时的目录为本机当前目录
docker images #查看本机存储的镜像
#运行容器 映射容器8080 至 宿主机 7001端口
docker run -p 7001:8080 --name web centos