• Dockerfile自定义容器


    1、Dockerfile

    Dockerfile 是用于构建 Docker 镜像的文本文件,其中包含一系列的指令和配置,用于定义镜像的构建过程。通过 Dockerfile,你可以定义镜像的基础操作系统、依赖、环境设置、应用程序等信息,从而实现可复制、自动化的镜像构建过程

    2、dockerfile常用参数:

    1.ARG:镜像层的环境变量
    2.FROM:拉取基础镜像
    3.COPY:拷贝文件
    4.ADD:拷贝文件、URL、压缩文件等
    5.EVN:镜像层和容器层参数
    6.EXPOSE:暴露容器内部端口给外部使用
    7.RUN:执行shell指令
    8.CMD:构建完成时执行的指令

    3、编写一个dockerfile 自定义一个nginx的容器

    1、创建mynginxDockerfile并编写dockerfile

    注意文件命名(如果命名Dockerfile,构建时是不需要制定名称的,docker会默认加载此名称的文件)

    # Dockerfile
    # docker build -t ngx-app .
    # docker build -t ngx-app:1.0 .
    
    ARG IMAGE_BASE="nginx"
    ARG IMAGE_TAG="1.21-alpine"
    
    FROM ${IMAGE_BASE}:${IMAGE_TAG}
    
    COPY ./default.conf /etc/nginx/conf.d/
    
    RUN cd /usr/share/nginx/html \
        && echo "hello nginx" > a.txt
    
    EXPOSE 8081 8082
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    ARG IMAGE_BASE=“nginx” 和 ARG IMAGE_TAG=“1.21-alpine”:定义了两个构建参数,用于指定基础镜像的名称和标签。

    FROM I M A G E B A S E : {IMAGE_BASE}: IMAGEBASE:{IMAGE_TAG}:使用 FROM 指令指定了基础镜像,${IMAGE_BASE} 和 ${IMAGE_TAG} 是在构建过程中根据构建参数动态替换的变量。

    COPY ./default.conf /etc/nginx/conf.d/:使用 COPY 指令将主机上的 default.conf 文件复制到容器中的 /etc/nginx/conf.d/ 目录。

    RUN cd /usr/share/nginx/html \ && echo “hello nginx” > a.txt:使用 RUN 指令在容器中执行一系列命令。首先,使用 cd /usr/share/nginx/html 命令切换到 /usr/share/nginx/html 目录。然后,使用 echo “hello nginx” > a.txt 命令将字符串 “hello nginx” 写入到名为 a.txt 的文件中。

    EXPOSE 8081 8082:使用 EXPOSE 指令声明容器将监听的端
    口号。在这个示例中,容器将监听 8081、8082 两个端口。

    通过这些指令, Dockerfile 构建了一个基于 nginx:1.21-alpine 镜像的新镜像。它将 default.conf 文件复制到容器中的 /etc/nginx/conf.d/ 目录,并在容器中的 /usr/share/nginx/html 目录下创建了一个名为 a.txt 的文件。

    2、在当前目录创建default.conf

    touch default.conf
    
    vi default.conf
    
    并将以下内容复制到文件中
    server {
        listen 8081;
        server_name localhost;
    
        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3、构建并查看docker镜像

    在这里插入图片描述

    4、运行容器

    在这里插入图片描述

    5、在浏览器中访问 http://本机ip:8080 来查看 Nginx 的欢迎页面

    在这里插入图片描述

    6、进入容器中查看对应内容

    查看容器id
    查看容器id
    进入容器,切换目录发现default.config已经存在,查看内容发现和./default.config是一致的
    在这里插入图片描述
    切换到如下目录,发现a.txt已经生成,查看内容hello nginx
    在这里插入图片描述

    7、退出并停止容器

    在这里插入图片描述

  • 相关阅读:
    提高 IDC 网络带宽利用率
    Android12之Codec2.0配置编解码器为H264实现(四十五)
    Vue+Element switch组件的使用
    第二范式
    彻底搞懂Mybatis
    什么是关系数据库,你知道吗?
    【题解】JZOJ7879 escape from whk 3
    Target of Evaluation(TOE)概述
    开源相机管理库Aravis学习(一)——安装
    将Java程序转化为exe文件时报错的解决方案(推荐初学者食用)
  • 原文地址:https://blog.csdn.net/FLGBgo/article/details/133682533