Dockerfile脚本编写流程及示例

学习dockerfile指令

|---------------|------------------------|
| Dockerfile 指令 | 说明 |
| FROM | 指定基础镜像 |
| MAINTAINER | 声明镜像的维护者 |
| LABEL | 添加元数据标签 |
| RUN | 在容器中执行命令 |
| CMD | 容器启动后默认执行的命令 |
| EXPOSE | 暴露容器的端口 |
| ENV | 设置环境变量 |
| ADD | 将文件、目录或远程文件添加到容器中 |
| COPY | 将文件或目录复制到容器中 |
| ENTRYPOINT | 容器启动时要执行的命令 |
| VOLUME | 创建挂载点,用于持久化存储 |
| USER | 指定运行容器的用户名或 UID |
| WORKDIR | 设置工作目录 |
| ARG | 定义构建参数,可在构建过程中传递给镜像 |
| ONBUILD | 在下一级镜像中执行指定的命令 |
| STOPSIGNAL | 设置停止容器时发送的信号 |
| HEALTHCHECK | 检查容器健康状态的指令 |
| SHELL | 设置用于执行 RUN 指令的默认 shell |
| COPY --chown | 复制文件并设置所有者和组 |
| ADD --chown | 添加文件并设置所有者和组 |

也可参考下方:

https://www.jianshu.com/p/4508784f6ddc

编写dockerfile脚本

复制代码
# v1.0.0
# sudo apt-get update
# sudo apt  install docker.io

# 基础镜像 不写latest默认就是latest
# FROM scratch:表示使用一个空镜像
FROM ubuntu:latest

# 镜像的信息定义,此处的key=value 均是根据实际情况定义
LABEL maintainer="chiyuba@qq.com"  version="0.0.1" description="这是一个带有python的测试镜像"

# 镜像操作命令
# RUN sudo apt-get update \ 
#     && apt-get install vim -y \
#     && sudo apt-get install python3 \
#     && sudo apt-get install python3-pip

RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
    vim \
    python3 \
    python3-pip

# 将test文件复制到home下 test.py表示和dockerfile文件同级目录
COPY test.py /home/


CMD ["python3", "--version"]


# 为容器指定开放端口  EXPOSE 2379/tcp 默认TCP协议,tcp/udp/http/https
EXPOSE 9999

安装docker

复制代码
sudo apt  install docker.io

执行dockerfile脚本,并生成镜像

复制代码
sudo docker build -t test_img .

查询镜像

复制代码
sudo docker images

运行镜像

复制代码
sudo docker run test_img
相关推荐
YoungStudyAI6 小时前
QA的下一个自动化阶段,可能不是再写更多脚本,而是设计测试Agent
运维·自动化
分布式存储与RustFS7 小时前
纠删码到底吃掉了多少容量:EC:4、EC:8 的利用率与容错怎么算
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
遇见小修修7 小时前
3步解决打印机0x00000709报错 ,广州深圳程序员可自行排查
运维·打印机·维修·打印机报错·打印机运维·打印机故障自查
无序的浪8 小时前
测试博客-基于微服务的在线判题系统
java·spring cloud·docker·微服务·测试·在线判题
Huangjin007_9 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
微小冷10 小时前
Mermaid画甘特图
运维·markdown·甘特图·mermaid·时间图
LBL122011 小时前
内网容器部署FTP日志监控服务
运维·服务器·容器
志栋智能11 小时前
超自动化巡检:驱动持续改进的运维飞轮
运维·自动化
海宇大数据11 小时前
零信任架构实战:基于海宇学历核验版构建自动化风控审查网关
运维·人工智能·架构·自动化
NailiConveyor11 小时前
输送机系统与WMS仓储管理系统集成的5个关键技术点
大数据·运维·自动化·制造·业界资讯