DockerFile的构建和使用

一、DockerFile介绍

Dockerfile就是用来构建docker镜像的构建文件,是一段命令参数脚本。

构建步骤:

  1. 编写一个dockerfile文件
  2. docker build 构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(DockerHub 、阿里云仓库)

很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像。

二、DockerFile构建过程

基础知识:

  1. 每个保留关键字(指令)都是必须是大写字母。
  2. 指令执行从上到下顺序。
  3. # 表示注释。
  4. 每一个指令都会创建提交一个新的镜像层,并提交。
    在这里插入图片描述

Dockerfile是面向开发的,以后发布项目,做镜像,就需要编写dockerfile文件。

DockerImages:通过DockerFile构建生成的镜像,最终发布和运行产品。
Docker容器:容器就是镜像运行起来提供服务。

# DockerFile常用指令
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的, 姓名+邮箱
RUN # 镜像构建的时候需要执行的命令
ADD # 步骤,比如:添加tomcat镜像,tomcat压缩包就是添加内容
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 暴露端口配置
CMD # 指定这个容器启动的时候要执行的命令,只有最后一个会生效,可被替代。
ENTRYPOINT # 指定这个容器启动的时候要运行执行的命令,可以追加命令
ONBUILD # 当构建一个被继承DockerFile,这个时候就会运行ONBUILD的指令,触发指令。
COPY # 类似ADD,将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量

三、DockerFile使用实例

创建一个自己的centos

# 1.编写Dockerfile文件
vim mydockerfile-centos
FROM centos
MAINTAINER jess<1727394***@qq.com>
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

# 2、通过这个文件构建镜像
# 命令 docker build -f 文件路径 -t 镜像名:[tag] .
docker build -f mydockerfile-centos -t mycentos:0.1 .

# 3、测试运行
docker run -it mycentos:0.1

在这里插入图片描述
创建一个Tomcat镜像

  1. 准备镜像文件
    准备 tomcat 和 jdk 到当前目录,编写好README。
    在这里插入图片描述
  2. 编写dokerfile文件
FROM centos 
MAINTAINER jess<1727394***@qq.com>
COPY readme.txt /usr/local/readme.txt#复制文件
ADD jdk-8u231-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_231 #设置环境变量
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/bin:$CATALINA_HOME/bin

EXPOSE 8080 #设置暴露的端口
CMD /usr/local/apache-tomcat-9.0.35/bin/startup.sh && tail -F /usr/local/apache-
tomcat-9.0.35/logs/catalina.out # 设置默认命令
  1. 构建镜像
# 因为dockerfile命名是默认命名 因此不需要使用-f 指定文件
docker build -t mytomcat:1.0 .
  1. run镜像
docker run -d -p 9090:8080 --name tomcat01 -v
/home/jess/build/tomcat/test:/usr/local/apache-tomcat-9.0.35/webapps/test -v /home/jess/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.35/logs mytomcat:0.1
  1. 发布----push镜像

① DockerHub上

docker login -u jess

Options:
 -p, --password string  Password
   --password-stdin  Take the password from stdin
 -u, --username string  Username

#提交 自己发布的镜像尽量带上版本号
docker push jess/mytomcat:1.0

若发现push不成功的解决办法:
方法一:build的时候添加你的dockerhub用户名,然后在push就可以放到自己的仓库了

docker build -t jess/mytomcat:1.0

方法二:使用docker tag 然后再次push

docker tag 容器id jess/mytomcat:1.0 

② 阿里云镜像服务上:
官网 https://cr.console.aliyun.com/repository/

#登录阿里云
docker login --username=jess registry.cn-shenzhen.aliyuncs.com
#给镜像生成版本号
docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/dsadxzc/jess:[镜像
版本号]
# 修改id 和 版本
docker tag a5ef1f32aaae registry.cn-shenzhen.aliyuncs.com/dsadxzc/jess:1.0
# 修改版本
docker push registry.cn-shenzhen.aliyuncs.com/dsadxzc/jess:[镜像版本号]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值