Docker 入门:Dockerfile
主要内容:
- 什么是 Dockerfile
- 查看 DockerHub 中镜像的 Dockerfile
- Dockerfile 编写
- Dockerfile 常用命令
什么是 Dockerfile
使用 Docker 经常需要基于已经有的镜像去定制新的镜像,Dockerfile 可以保存这种镜像定制的过程。编写好 Dockerfile 后,可以重复使用这个文件在不同的机器上构建同样的镜像。
查看 DockerHub 中镜像的 Dockerfile
可以在 DockerHub 中的任意一个镜像页面点击标签,查看 Dockerfile 文件,比如点击 nginx 的 latest 标签,看到 nginx 的 Dockerfile:
Dockerfile 编写
接下来,我可以在官方的 nginx 镜像基础上做定制。 默认的 nginx 页面打开是这样的:
我希望达到的效果是页面显示:
I have changed the nginx page.
首先准备好要替换的 index.html 页面:
<html>
<head><title>hello</title></header>
<body>I have changed the nginx page.</body>
</html>
编写 Dockerfile:
# 从 nginx 镜像开始编写
FROM nginx:latest
# 指定容器的默认工作目录
WORKDIR /usr/share/nginx/html
# 复制本地文件到 docker 中
COPY index.html index.html
在 index.html 和 Dockerfile 同级目录执行构建指令:
docker image build -t nginx_custom:latest .
接下来,通过 nginx_custom 这个名字标签运行容器, 访问 8000 端口就可以看到定制后的效果了。
docker container run -p 8000:80 nginx_custom:latest
Dockerfile 常用命令
FROM
必须写,表示从哪个基镜像开始构建。
FROM untuntu
# 从 0 开始
FROM scratch
WORKDIR
工作目录
WORKDIR /usr/share
# 相当于运行 cd /usr/share
COPY / ADD
添加本地文件。一般使用 COPY
COPY localfile /dest/file
ENV
添加环境变量。
ENV <key> <value>
ENV <key>=<value> ...
EXPOSE
开放端口。容器可以监听的端口。 EXPOSE 80/udp , 协议可以不填。注意和运行程序的 -p 区分。
VOLUME
数据卷。
RUN
要运行的指令,可以是 shell 格式,也可以是 exec 格式。
RUN yum install wget
RUN ["yum", "install", "wget"]
CMD
一个 Dockerfile 中只出现一次,容器开启时运行的命令。比如启动一个 python 程序: python run.py。 格式也支持 shell 和 exec 格式。
CMD python run.py
Docker 入门:Dockerfile的更多相关文章
- Docker入门-Dockerfile的使用
使用Dockerfile定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,这个脚本就是Dockerfile. Dockerfile ...
- docker入门-Dockerfile入门
1.dockerfile 构建基础命令 2. 构建镜像命令 Usage: docker image build [OPTIONS] PATH | URL | -Options:-t, --tag li ...
- (转)Docker入门——Dockerfile详解
转:https://www.cnblogs.com/sorex/p/6481407.html 基本示例 FROM MAINTAINER LABEL RUN ADD COPY CMD ENTRYPOIN ...
- Docker入门教程(三)Dockerfile
Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...
- Docker入门之七Dockerfile
Dockerfile是一个文本格式的配置文本,可以使用它来创建自定义的镜像.首先我们可以先看一个dockerfile是什么样子.这里可以有一个网站不错:http://dockerfile.github ...
- Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
- Docker入门教程(四)Docker Registry
Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...
- Docker入门教程(一)介绍
http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...
- Docker入门命令
Edit Docker入门命令 # 安装镜像sudo docker pull ubuntu:12.04# 镜像列表sudo docker images# 运行镜像sudo docker run -t ...
随机推荐
- 数据库SQL语言从入门到精通--Part 3--SQL语言基础知识
数据库从入门到精通合集(超详细,学习数据库必看) 一.关系 单一的数据结构----关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构----二维表 从用户角度,关系模型中数据的逻辑结构是 ...
- P1459 三值的排序 Sorting a Three-Valued
题目描述 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候.在这个任务中可能的值只有三种1,2和3.我们用交换的方法把他排成升 ...
- The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 B so easy
题目链接:https://nanti.jisuanke.com/t/41384 这题暴力能过,我用的是并查集的思想,这个题的数据是为暴力设置的,所以暴力挺快的,但是当他转移的点多了之后,我觉得还是我这 ...
- 在Jetson TX2上安装caffe和PyCaffe
caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要.顺便说一句,下面的安装是支持python3的. 先决条件 在Jetson TX2上完 ...
- Vxlan L3
拓扑图: CE1 <CE1>display current-configuration !Software Version V800R013C00SPC560B560 !Last conf ...
- Scrapy爬虫框架基本使用
scrapyhub上有些视频简单介绍scrapy如何学习的(貌似要FQ):https://helpdesk.scrapinghub.com/support/solutions/articles/220 ...
- RocketMQ搭建全过程
RocketMQ下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-bin-relea ...
- MySQL JDBC Driver 8.0+设置服务器时区
遇到一个问题,线下环境测试数据的查询完全没有问题,但是线上环境却没法查询出数据,并且从mybatis输出的日志来看,查询参数也没有问题,数据库中数据也是存在的,查询参数类型是java.util.Dat ...
- P1640 连续攻击游戏
题目传送门 Ⅰ.二分图匹配 其实这题应该不难看出是二分图匹配(尽管我没看出来) 每个物品只能用一次,实际上就是1~n的数字对物品的最大匹配 把物品的两个属性向物品编号连边,之后就从数字1一直匹配过去 ...
- 【Swift】获取UILabel中点击的某个功能标签文字并作出响应动作
1.需求 首先.针对UILabel中显示的多个功能标签,作出颜色标记提示. 其次.对关键字作出点击响应动作. 如图所示: 解决: 1.使用正则匹配到关键字 public static var hash ...