Docker05 DockerFile

06 DockerFile

DockerFile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

1. 基础知识

(1)每条保留字指令都必须是大写字母且后面要跟随至少一个参数
(2)指令按照从上到下,顺序执行
(3)#表示注释
(4)每条指令都会创建一个新的镜像层,并对镜像提交

2. Docker执行DockerFile的大致流程

(1)docker运行一个基础镜像的容器
(2)执行指令对容器进行修改
(3)提交一个新的容器,并运行这个新容器
(4)执行dockerfile中的下一条指令

3. DockerFile常用指令

FROM			当前的镜像继承自哪个基础镜像

MAINTAINER 		镜像维护者姓名和邮箱地址

RUN				在容器构建时需要运行的命令,shell格式 or exec格式,在docker build时运行

EXPOSE			容器对外暴露的端口

WORKDIR			进入容器的初始目录

USER			指定该镜像以什么用户执行,默认为root

ENV				构建镜像过程中设置环境变量

ADD				将宿主机目录下的文件拷贝进镜像并自动处理URL和解压压缩包

COPY			将宿主机目录下的文件拷贝进镜像

VOLUME			容器数据卷

CMD				容器启动后要做的事情,shell格式 or exec格式,只有最后一个CMD会生效,并会被docker run后的命令覆盖

ENTRYPOINT		类似于CMD。搭配CMD使用后ENTRYPOINT为固定参数,CMD为可变参数传递给ENTRYPOINT。ENTRYPOINT不会被docker run后的命令覆盖。

4. DockerFile实例一

创建Dockerfile文件

# vim Dockerfile

编写内容

FROM ubuntu
MAINTAINER zhouyc

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN apt-get -y update
# 安装vim
RUN apt-get -y install vim
# 安装ifconfig命令
RUN apt-get -y install net-tools
# 安装java8
RUN mkdir -p /usr/loacl/java
ADD jdk-8u241-linux-x64.tar.gz /usr/local/java/

#配置JAVA环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_241
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 ubuntu_with_jdk8:1.0 .

5. DockerFile实例二:通过docker发布JavaWeb微服务

第一步:通过Maven将JavaWeb微服务项目打包,上传至服务器
第二步:编写DockerFile文件

在jar包同目录下创建Dockerfile文件

vim DockerFile

编写DockerFile文件

FROM java:8
MAINTAINER zhouyc

VOLUME /tmp
ADD docker_boot-0.0.1-SNAPSHOT.jar docker_test.jar
ENTRYPOINT ["java", "-jar", "/docker_test.jar"]
EXPOSE 6001
第三步:构建镜像文件

运行构建命令

docker build -t dockers_test:1.0 .
第四步:运行容器
docker run -d -p 6001:6001 dockers_test:1.0

6. 虚悬镜像

docker在构建或删除镜像过程中出现错误,产生的仓库名、标签名都是的镜像

[root@iZ2ze0v2pan6jiw4jb3g2cZ ~]# docker images
REPOSITORY                     	TAG       IMAGE ID       CREATED         SIZE
ubuntu_with_jdk8             	1.0       62d5b24c3c9b   22 hours ago    587MB
<none>                        	<none>    34e77a048178   22 hours ago    113MB

查询全部虚悬镜像

docker image ls -f dangling=true

删除全部虚悬镜像

docker image prune
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值