这次不鸽了,五一假期冰河为你整理了这些Dockerfile基础知识,拿走不谢!!

简介: 早之前,不少小伙伴让我整理下Dockerfile相关的基础知识,由于平时工作很忙,业余时间也被安排的满满的。所以,这些事情搁置了很久。所以,这次,趁着五一假期,不鸽了,安排。。。

Dockerfile常用命令

  • FROM: 继承基础镜像
  • MAINTAINER:镜像制作作者信息
  • RUN: 用来执行shell命令
  • EXPOSE: 暴露端口号
  • CMD: 启动容器默认执行的命令,会被覆盖
  • ENTRYPOINT: 启动容器真正执行的命令,不会被覆盖
  • VOLUME:创建该挂载点
  • ENV: 配置环境变量
  • ADD: 复制文件到容器,一般拷贝文件,压缩包自动解压
  • COPY:复制文件到容器,一般可拷贝目录
  • WORKDIR:设置容器的工作目录
  • USER:容器使用的用户

接下来,列举几个Dockerfile的实例。

Dockerfile实例

1.使用RUN创建一个用户

Dockerfile文件内容如下所示。

FROM centos:6
MAINTAINER binghe
RUN useradd binghe

执行构建,如下所示。

docker build -t centos:user .

2.使用ENV定义环境变量并用CMD执行命令

Dockerfile文件内容如下所示。

FROM centos:6
MAINTAINER binghe
RUN useradd binghe
RUN mkdir binghe
ENV envir=test version=1.0
CMD echo "envir:$envir version:$version"

执行构建并启动测试:

#执行构建
docker build -t centos:evn-cmd .
#启动镜像验证EVN和CMD
docker run centos:env-cmd

3.使用ADD添加一个压缩包,使用WORKDIR改变工作目录

FROM nginx
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html

4.使用COPY拷贝目录

使用COPY拷贝指定目录下的所有文件到容器,不包括本级目录。此时只会拷贝webroot下的所有文件,不会将webroot拷贝过去:

FROM nginx
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
COPY webroot/ .

5.设置启动容器的用户

设置启动容器的用户,在生产环境中一般不建议使用root用户启动容器,所以,可以根据公司业务场景自定义启动容器的用户:

FROM centos:6
MAINTAINER binghe
ADD ./index.tar.gz /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
COPY webroot/ .
RUN useradd -m tomcat -u 1001
USER 1001

6.使用VOLUME创建容器可挂载点

FROM centos:6
MAINTAINER binghe
VOLUME /data

挂载目录到/data,注意:对于宿主机路径,要写绝对路径:

docker run -ti --rm -v `pwd` /web:/data centos:volume bash
相关文章
|
存储 算法 Java
Java求数字最大值
Java求数字最大值
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
弹性计算 资源调度 Kubernetes
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
2653 3
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
900 5
|
弹性计算 固态存储 Linux
阿里云服务器、轻量应用服务器、gpu云服务器收费标准与实时活动价格参考
云服务器ECS、轻量应用服务器和gpu云服务器是阿里云的主要云服务器产品,目前轻量应用服务器2核2G收费标准为60元/月,活动价格只要36元/1年或68元1年,云服务器1核1G包月收费标准最低为24.0元/月,GPU云服务器中gn6i实例4核15G配置月付1681.00/1个月起,gn6v实例8核32G配置月付3817.00/1个月起。本文为大家整理汇总了阿里云服务器、轻量应用服务器、gpu云服务器的最新收费标准与活动价格情况,以表格形式展示给大家,以供参考。
|
前端开发 UED 容器
《解锁CSS布局魔法,打造惊艳页面》
CSS是前端开发中实现页面布局的核心工具,通过盒模型、定位方式(静态、相对、绝对、固定、粘性)、Flexbox和CSS Grid等技术,可以灵活构建从简单到复杂的布局效果。盒模型定义了元素的结构与空间关系;不同定位方式满足多样化的排版需求;Flexbox擅长一维布局,而CSS Grid则适用于复杂的二维布局。此外,响应式设计结合媒体查询和弹性单位,确保跨设备的良好体验。高级技巧如伪类/伪元素、CSS变量的应用,以及优化选择器使用,进一步提升布局效率与性能。掌握这些方法,可创造出既美观又实用的网页设计。
220 11
|
数据安全/隐私保护
硬盘坏道如何检测和修复?
本文介绍了硬盘坏道的概念,包括逻辑坏道和物理坏道的区别,并提供了使用DiskGenius检测和修复坏道的步骤。当硬盘出现坏道且包含重要数据时,应立即备份数据,使用数据恢复软件,或在严重情况下寻求专业帮助。保护和恢复数据是应对硬盘坏道的关键。
|
API 数据库 Python
二、学习 Flask之二
二、学习 Flask之二
280 0
剑指 Offer 21:调整数组顺序使奇数位于偶数前面
剑指 Offer 21:调整数组顺序使奇数位于偶数前面
126 1
剑指 Offer 21:调整数组顺序使奇数位于偶数前面
|
开发工具 数据库 开发者
淘东电商项目(28) -QQ授权登录实现思路
淘东电商项目(28) -QQ授权登录实现思路
458 0
淘东电商项目(28) -QQ授权登录实现思路

热门文章

最新文章