Docker--自定义Dockerfile并构建

1. 编写一个centos的Dockerfile
  1. 指定登录默认路径为/home
  2. 安装vim以支持vim编辑器
  3. 安装net-tools以支持ifconfig
  4. 暴露80端口
vim /home/docker/Dockerfile-centos01
FROM centos
MAINTAINER wsjwoods<wsjwoods@gmail.com>

ENV MYPATH /home
WORKDIR $MYPATH

RUN yum -y install vim 
RUN yum -y install net-tools

EXPOSE 80
CMD /bin/bash
2. bulid构建Dockerfile
docker build -f /home/docker/Dockerfile-centos01 -t mycentos:1.2 .

等待完成。

查看images

docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
mycentos                   1.2                 016b635f1349        26 seconds ago      447MB

出现了刚刚构建的mycentos镜像。

3. 验证镜像

根据刚才构建的镜像创建容器

docker run -it mycentos:1.2
  1. 落脚点是/home目录
[root@7f99ccdc581d home]#
  1. vim命令

  2. ifconfig命令

都能正确使用。

自定义Dockerfile构建完成。


欢迎访问个人博客:Woods Blog

### Docker Compose 与 Dockerfile 的区别及用途 #### 定义与功能 Dockerfile 是一种用于定义如何构建镜像的脚本文件。它描述了从基础镜像开始,通过一系列指令逐步构建目标镜像的过程[^4]。这些指令可以包括安装软件包、复制文件到容器中以及设置环境变量等操作。 相比之下,Docker Compose 则专注于管理多容器应用。它可以将多个服务组合在一起,通过 YAML 文件配置它们之间的依赖关系和服务参数[^3]。这使得开发者能够轻松启动整个应用程序栈而无需手动运行每个单独的服务。 #### 使用场景 当只需要创建部署单一容器时,通常会使用 Dockerfile 来定制化该容器所需的一切资源和配置项。然而,在实际开发过程中往往涉及到不止一个相互协作的服务单元;此时便需要用到 Docker Compose 进行编排工作[^1]。 例如,在微服务体系结构下可能有数据库服务器、缓存系统以及其他业务逻辑处理模块等多个组件共同构成整体解决方案——这种情况下借助于Compose工具就可以简化运维流程提高效率[^2]。 #### 配置方式对比 以下是两者在具体实现上的差异: - **语法形式**: - Dockerfile采用类命令式的语句来指示每一步该如何执行; -Docker Compose则利用YAML格式编写文档以声明各个服务及其属性。 - **作用范围**: - 前者主要负责镜像制作环节中的各项细节设定; - 后者侧重于安排好各独立部分之间交互模式的同时也兼顾到了网络端口映射等方面的内容。 ```yaml version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine" ``` 上述例子展示了如何用Compose文件定义两个关联的服务:“web”是从当前目录下的Dockerfile构建出来的,“redis”则是直接拉取官方提供的精简版镜像实例。 ### 总结 综上所述,Dockerfile适用于单个容器镜像的具体构造过程,提供了高度灵活性让用户自定义内部状态;Docker Compose更多关注的是跨不同类型的实体间协调一致的工作流设计,从而满足复杂项目需求.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值