摘自B站UP主狂神的学习笔记,欢迎大家去看原视频学习:BV1og4y1q7M4
DockerFIle
dockerfile用来构建docker镜像的文件!命令参数脚本
构建步骤:
- 编写一个dockerfile文件
- docker build 构建一个镜像
- docker run运行镜像
- docker push 发布镜像
很多官方的镜像都是基础包,很多功能都没有。通常会自己搭建镜像
DockerFile的脚本构建
基础知识:
1、每个保留字都必须是大写字母
1、每个保留字都是大写
2、执行从上到下顺序执行
3、# 表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交
dockerfile是面向开发的,以后要发布项目,做镜像,就需要编写dockerfile文件。
Docker镜像逐渐成为企业交付的标准
名称 | 作用 |
---|---|
DockerFile | 构建文件,定义了一切的步骤 |
DockerImages | 通过DockerFile构建生成的镜像,最终发布和运行的产品 |
Docker容器 | 容器就是镜像运行起来提供服务器 |
DockerFile指令
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的 姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 步骤:tomcat镜像,这个tomcat的压缩包,就是要添加的内容
WORKDIR # 镜像的工作目录
VOLUME # 容器的挂载目录
EXPOSE # 指定对外的端口配置
CMD # 指定这个容器启动的时候要运行的命令。只有最后一个会生效,可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令。可以追加命令
ONBUILD # 当构建一个被继承 DockerFile这个时候就会运行ONBUILD指令。触发指令
COPY # 类似ADD,将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量
配置实战
先从FROM scratch开始
编写一个自己的centos
root@dennis-1:/home/dockerfile# vim mydockerfile-centos
root@dennis-1:/home/dockerfile# cat mydockerfile-centos
FROM centosr
MAINTAINER dennis<[email protected]>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "------end-------"
CMD /bin/bash
# 通过这个文件构建镜像
docker build -f mydockerfile-centos -t mycentos:0.1 .
# build --构建镜像
# -f 指定构建的文件名
# -t 指定生成的镜像名
# 最后有一个点 .
我们还可以通过docker history [容器ID]来查看一个容器的构建历史:
CMD 和 ENTRYPOINT的区别
- 测试cmd
如果想要追加一个命令 -l --> ls -al
cmd的情况下会报错。
- 测试ENTRYPOINT
这一次在构建完毕后,在末尾执行了一个-l,被加到了前面,形成了“ls -la”
编写一个Tomcat
-
准备镜像文件,tomcat和jdk的tar.gz压缩包
-
编写dockerfile文件名,官方命名
Dockerfile
,build会自动寻找这个文件,就不需要-f指定
FROM centos
MAINTAINER dennis<[email protected]>
# 添加的tar会自动解压到指定的目录下
ADD jdk-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.35.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_131
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.35
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.35/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.35/catalina.out
-
构建自己的镜像
-
启动镜像
-
访问测试
-
发布项目
发布镜像
-
登录镜像网址
docker login [opetions] [server] # -p --password # -u --username
-
登录完成过后,发布镜像
docker push dennis/diytomcat:1.0
直接上传镜像一般会被拒绝,需要加上作者信息,版本信息 – 通过docker tag添加
# 自己发布的镜像,尽量要带版本号
docker tag 187a2cd663cf dennis/diytomcat:1.0
发布到阿里云镜像服务上
– 没有买,暂时空着
小结
Docker的执行流程: