Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
构建三步骤
编写Dockerfile文件
docker build命令构建镜像
docker run 依镜像运行容器实例
Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维
FROM
MAINTAINER
RUN
EXPOSE
WORKDIR
USER
ENV
ADD
COPY
VOLUME
CMD
启动后要干的事情 docker run 执行
CMD会被docker run 命令覆盖 只有最后一个命令生效
加了 /bin/bash 后 不能直接访问8080端口,原因是把之前的覆盖了
ENTRYPOINT
centos
docker run -it centos镜像id /bin/bash # 没有vim ifconfig jdk环境
#要求centos具备vim+ifconfig+jdk8
jdk8.tar.gz
https://mirrors.yangxingzhen.com/jdk/
编写Dockerfile
mkdir myfile
ll
# 有jdk.tar.gz包
vim Dockerfile
FROM centos
MAINTAINER zzyy<zzyybs@126.com>
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 $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
构建
docker build -t centosjava8:1.5 .
#注意 有个点
docker images #查看 发现有这个centosjava8:1.5 镜像了
docker run -it 镜像id /bin/bash
pwd
/usr/local
vim 可以用
ifconfig 可以用
java -version 可以
仓库名 和 标签名都是 的镜像
mkdir /test
cd test
vim Dockerfile
FROM ubuntu
CMD echo 'action is success'
docker build .
docker images # 发现有 仓库名和标签名都是 的镜像 没啥用 一定要删除
docker images ls -f dangling=true #查看虚悬镜像
docker image prune #删除虚悬镜像
第一步 springboot项目打包 上传
端口号6001
mkdir mydocker
cd mydocker # 上传到这里
vim Dockerfile # 编写
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER zzyy
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为zzyy_docker.jar
ADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar
# 运行jar包
RUN bash -c 'touch /zzyy_docker.jar'
ENTRYPOINT ["java","-jar","/zzyy_docker.jar"]
#暴露6001端口作为微服务
EXPOSE 6001
#构建
docker build -t zzyy_docker:1.6 .
docker images
# 运行容器
docker run -d -p 6001:6001 镜像id
# 访问测试
ip:6001