初识dockerfile及--volumes-from的使用场景

dockerfile就是用来构建镜像的文件,按行执行,
文件中的内容 指令(大写) +参数
这里的每一行表示镜像的每一层

创建文件夹
mkdir test-volume
创建并编辑dockerfile文件
vim  dockerfile
创建 centos镜像并挂载两个卷(dockerfile文件的内容)
FROM centos
VOLUME ["volume01","volume02"]
CMD  echo "-----end-----"
CMD /bin/bash
创建容器
 docker build -f /home/test-volume/dockerfile1  -t caosheng/centos .
 查看镜像
 docker ps

successfully即成功

查看镜像挂载的信息及地址
docker inspect “镜像id”
在这里插入图片描述
–volumes-from
数据卷容器的同步类似于java中的extends子类继承父类(但在子类中创建父类中也会同步) 此时docker01为数据卷容器(建议自己去执行一次)
在这里插入图片描述
数据容器中某一个共享的容器被删除,其他共享容器内的数据不会随之丢失,也就是说这里的数据共享本质上是容器之间的数据互相拷贝

dockerfile的指令详解(注意!!!全大写)由此自己创建一个镜像

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

构建镜像练习

### 正确编写和使用 Dockerfiledocker-compose.yaml 文件 #### 编写 Dockerfile Dockerfile 是用于定义容器化应用程序所需的操作系统的指令集。以下是创建 Python 应用程序的简单 Dockerfile 的例子: ```dockerfile # 使用官方Python镜像作为基础镜像 FROM python:3.11-slim-buster # 设置工作目录 WORKDIR /app # 将当前目录下的所有文件复制到容器内的/app路径下 COPY . . # 安装依赖项 RUN pip install --no-cache-dir -r requirements.txt # 告知Docker端口80被应用监听 EXPOSE 80 # 运行命令启动Web服务器,默认会执行main.py中的Flask应用 CMD ["python", "main.py"] ``` 此示例展示了如何基于特定版本的 Python 创建一个轻量级的基础映像,并设置必要的环境变量来运行 Web 应用。 #### 编写 docker-compose.yaml 文件 为了简化多容器部署流程,可以利用 `docker-compose` 工具及其配置文件 `docker-compose.yaml` 来管理多个关联的服务。下面是一个简单的 Airflow 配置实例[^3]: ```yaml version: '3' services: webserver: image: apache/airflow:latest-python3.11 environment: AIRFLOW__CORE__EXECUTOR: LocalExecutor AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres_user:password@db/postgres_db volumes: - "8080:8080" depends_on: - db db: image: postgres:13 environment: POSTGRES_USER: postgres_user POSTGRES_PASSWORD: password POSTGRES_DB: postgres_db ``` 上述 YAML 文件指定了两个服务——一个是 Apache Airflow 实例,另一个是 PostgreSQL 数据库;通过 `depends_on` 关键字确保数据库先于Airflow 启动[^4]。 当遇到错误提示关于Compose文件版本不支持时,应确认所使用的 Compose 版本与实际需求相匹配并调整相应部分的内容结构。 对于非默认命名的 compose 文件,在执行命令时需显式指定其名称,例如 `docker-compose -f custom-name.yml up` 可以用来替代标准形式 `docker-compose up` [^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值