• Docker---初识DockerFile


    初识DockerFile

    一、DockerFile介绍

    dockerfile是用来构建docker镜像的文件,命令参数脚本。构建步骤:

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

    二、DockerFile构建过程

    1. DockerFile基础知识

    • 每个保留关键字(指令)都必须是大写字母。
    • 执行顺序:从上到下顺序执行。
    • #  表示注释
    • 每一个指令都会创建提交一个新的镜像层,并提交。

    2. DockerFile指令说明

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

    构建DockerFile

    一、创建自己的 centos 镜像

    1. 编写Dockerfile文件

    FROM centos
    MAINTAINER dongdong<158629568@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. 通过Dockerfile文件构建镜像

    [root@localhost ~]# docker build -f dockerfile文件路径 -t 镜像名:[tag] .
    [root@localhost ~]# docker build -f mydockerfile -t mycentos:0.1 .

    3. 查看自己构建的 centos 镜像

    [root@localhost ~]# docker images                 # 查看mycentos镜像是否生成
    
    [root@localhost ~]# docker run -it mycentos:0.1   # 运行镜像,生成容器
    
    [root@localhost ~]# docker history 镜像id         # 查看镜像是怎么一步一步做起来的
    [root@localhost ~]# docker history 920636cc7d12

    二、创建自己的 tomcat 镜像

    1. 准备镜像文件tomcat压缩包,jdk的压缩包。我这里是:apache-tomcat-9.0.37.tar.gz、jdk-8u161-linux-x64.tar.gz。

    2. 编写Dockerfile文件,官方命名:Dockerfile,这样在build的时候,会自动寻找这个文件,就不需要-f指定了。

    FROM centos
    MAINTAINER dongdong<158629568@qq.com>
    
    COPY readme.txt /usr/local/readme.txt
    
    ADD jdk-8u161-linux-x64.tar.gz /usr/local/
    ADD apache-tomcat-9.0.37.tar.gz /usr/local/
    
    RUN yum -y install vim
    RUN yum -y install net-tools
    
    ENV MyPath /usr/local
    WORKDIR $MyPath
    
    ENV JAVA_HOME /usr/local/jdk1.8.0_161
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.37
    ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.37
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
    
    EXPOSE 8080
    
    CMD /usr/local/apache-tomcat-9.0.37/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.37/bin/logs/catalina.out

    3. 构建镜像

    [root@localhost ~]# docker build -t my_tomcat .        # . 代表当前路径,也可以写绝对路径。

    4. 启动镜像,生成容器,并访问测试

    [root@localhost ~]# docker run -d -p 3120:8080  --name my_tomcat01 -v /home/tomcat/test:/usr/local/apache-tomcat-9.0.37/webapps/test -v /home/tomcat/logs:/usr/local/apache-tomcat-9.0.37/logs my_tomcat
    
    [root@localhost ~]# curl localhost:3120                          # 访问测试
    
    [root@localhost ~]# docker exec -it 容器id /bin/bash             # 进入容器
    [root@localhost ~]# docker exec -it 074b23e94d /bin/bash

    5. 发布项目(由于做了卷挂载,我们直接在本地编写项目就可以发布了)

    发布自己的镜像到DockerHub

    一、注册自己的账号,地址:https://hub.docker.com/

    二、在我们服务器上提交自己的镜像。

    [root@localhost ~]# docker login -u username      # 使用用户名登陆docker hub   
    [root@localhost ~]# docker login -u love666    

    三、登陆完毕后,就可以提交镜像了。使用docker push命令。

    [root@localhost ~]# docker push my_tomcat                          # 方式一:直接push自己的镜像到服务器上。
     
    [root@localhost ~]# docker tag e5de7fdf4d2e liumou/my_tomcat:1.0   # 方式二:先修改自己的镜像的信息(tag与名称),再发布。这里e5de7fdf4d2e是镜像id。
    [root@localhost ~]# docker push liumou/my_tomcat:1.0

    发布自己的镜像到阿里云容器服务

    一、登陆阿里云

    二、找到容器镜像服务

    三、创建命名空间

    四、创建镜像仓库

    五、查看镜像仓库信息,按照步骤来一步步提交

    [root@localhost ~]# sudo docker login --username=小刘_小田 registry.cn-hangzhou.aliyuncs.com
    [root@localhost ~]# sudo docker tag e5de7fdf4d2e registry.cn-hangzhou.aliyuncs.com/bilibili-dongdong/dongdong-niubi:1.0   # e5de7fdf4d2e是镜像id
    [root@localhost ~]# sudo docker push registry.cn-hangzhou.aliyuncs.com/bilibili-dongdong/dongdong-niubi:1.0

    六、现在别人就可以使用你的镜像啦。通过docker pull、docker run。

  • 相关阅读:
    网页图表Highcharts实践教程标之添加题副标题版权信息
    S3C6410 裸机硬件JPEG解码(转)
    FPGA UART简单的串口接收模块
    unicode转GBK,GNK转unicode,解决FATFS中文码表占用ROM问题(转)
    Java 基础类型转换byte数组, byte数组转换基础类型
    JNI错误总结(转)
    Java通过JNI调用dll详细过程(转)
    UDP传输包大小(转)
    SD卡兼容性问题(转)
    汉字与区位码互转(转)
  • 原文地址:https://www.cnblogs.com/liuhaidon/p/13623388.html
Copyright © 2020-2023  润新知