dockerfile基本操作

本文深入解析Dockerfile的保留字指令,如FROM、MAINTAINER、RUN等,介绍如何使用这些指令创建和定制Docker镜像。通过实例演示构建包含Java和Tomcat的自定义镜像过程。
  1. dockerfile内容基础知识

    1. 每条保留字指令必须为大写字母并且后面要跟随至少一个参数
    2. 指令按照从上到下。顺序执行
    3. 每条指令都会创建一个镜像层,并对镜像进行提交
  2. docker执行dockerfile流程

    1. docker从基础镜像运行一个容器
    2. 执行一条指令并对容器进行修改
    3. 执行类似docker commit的操作提交一个新的镜像
    4. docker再基于刚才提交的镜像运行一个新的容器
    5. 执行dockerfile中的下一条指令知道所有指令执行完毕
  3. dockerfile保留字指令

    1. FROM		基础镜像,当前镜像是基于哪个镜像的
    2. MAINTAINER		镜像维护者的姓名和邮箱地址
    3. RUN		容器构建时需要运行的命令
    4. EXPOSE	当前容器对外暴露的端口号
    5. WORKDIR	创建容器后,终端默认登录的进来工作目录,
    6. ENV		构建镜像过程中环境变量
    7. ADD		在宿主机目录下文件拷贝进镜像且ADD命令会自动处理url和解压目标文件
    8. COPY		类似ADD,拷贝文件到目录到镜像中
    9. VOLUME	容器数据卷,用于数据保存和持久化
    11.CMD		指定一个容器启动时运行的命令,可以有多个CMD命令,但只有最后一个运行
    12. ENTRYPOINT	和CMD命令一样,但是会追加,不会覆盖
    13. ONBUILD 当构建一个呗继承的dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发
    
  4. 编写dockerfile
    dockerfile文件

  5. 构建docker

    docker build -t 新镜像名字:版本 .
    (最后有点,镜像名字后有冒号)
    
  6. 运行docker

    docker run -it 新镜像名字:版本
    
  7. 列出镜像变更历史

    docker history 镜像ID
    
  8. 自定义dockerfile生成Tomcat

    # 继承centos
    FROM centos
    # 把宿主机当前上下文的c.txt拷贝到容器/usr/local路径下
    COPY c.txt /usr/local/cincontainer.txt
    # 吧java和Tomcat添加到容器中
    ADD jdk-xxxx.tar.gz /usr/local
    ADD tomcat-xxx.tar.gz /usr/local
    # 安装vim编辑器
    RUN yum -y install vim
    # 设置工作访问时候的workdir路径
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    # 配置java环境变量
    ENV JAVA_HOME /usr/local/jdkxxxx
    ENV xxxxxxxx
    # 容器运行时监听端口
    EXPOSE 8080
    # 启动时运行comcat
    CMD /usr/local/apache-tomcat-xxxx/bin/startup.sh && tail -F /usr/local/apache-tomcat-xxxx/bin/logs/catalina.out
    
  9. 构建dockerfile
    docker build -t 镜像名字
    如果不写-f 会默认读取目录下Dockerfile文件

  10. 孙东东

    docker run -d -p 9080:8080 --name 名字 -v 宿主机目录:容器卷 -v 宿主机目录:容器卷 --privileged=true 新的镜像名字
    -d		后台运行
    -p 	端口映射
    -v 	添加容器卷
    
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值