采得百花成蜜后,为谁辛苦为谁甜。这篇文章主要讲述#yyds干货盘点#如何写好Dockerfile相关的知识,希望能为你提供帮助。
1.什么是Dockerfile
Dockerfile 相当于是一个脚本,不过是可以在这个脚本文件里使用一些特定的命令(关键字)完成一些自动化任务的脚本。其主要目的是创建用户自定义镜像。
如果不用Dockerfile创建一个自定义的镜像,大概步骤是:
如果把以上步骤都写进一个文件里,然后让docker自己去实现就显得方便很多,所以就有了Dockerfile.
- 找一个基础镜像(共有仓库或者私有仓库)
- docker pull path(下载镜像)
- docker yun 生成一个容器container
- 进入container,做各种操作和配置,一般都是装三方插件,yum install等等
- docker tag, docker push 提交成一个新的docker container,docker save ,docker load
2.Dockerfile的文件组成
##Dockerfile文件格式
# This dockerfile uses the ubuntu image
# VERSION 2 - EDITION 1
# Author: docker_user
# Command format: Instruction [arguments / command] ..
# 1、第一行必须指定 基础镜像信息
FROM ubuntu
# 2、维护者信息
MAINTAINER docker_user docker_user@email.com
# 3、镜像操作指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" > > /etc/apt/sources.list
RUN apt-get update & & apt-get install -y nginx
RUN echo "\\ndaemon off; " > > /etc/nginx/nginx.conf
# 4、容器启动执行指令
CMD /usr/sbin/nginx
3.构建镜像
进到Dockerfile文件目录
docker build -t nginx/v3 .
# nginx/v3是镜像标签,支持添加多个标签
docker build -t nginx/v3:1.0.2 -t nginx/v3:latest .
如果不想进到Dockerfile文件目录,可以指定文件路径
docker build -f /path/to/a/Dockerfile .
??. 是上下文路径??
- 上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
?解析?:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
?注意?:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
4.查看镜像
docker images
【#yyds干货盘点#如何写好Dockerfile】
推荐阅读
- Linux运维必知(如何从其 PID 中查找进程名称)
- 期待!Fedora 36 发布日期和新功能
- Squid代理服务器应用
- Veeam Backup & Replication 之 数据加密
- Linux小技巧(如何在 Vim 中显示行号())
- 如何安装nginx,并根据不同的项目读取不同的配置文件
- MacBook安装软件时允许任何来源的软件
- #yyds干货盘点#K8S 之命令行应用编排
- ELK+Filebeat+Kafka分布式日志管理平台搭建