码迷,mamicode.com
首页 > 其他好文 > 详细

Docker(3):Dockerfile介绍及简单示例

时间:2019-01-21 16:00:14      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:git仓库   通过   ring   use   cti   email   test   rar   usr   

Dockerfile 概念

  Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器的镜像。

  有了 Dockerfile,当我们需要定制自己额外的需求时,只需在 Dockerfile 上添加或者修改指令,重新生成 image 即可,省去了敲命令的麻烦。

技术分享图片

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

Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令。一开始必须要指明所基于的镜像名称,接下来一般会说明维护者信息;后面则是镜像操作指令,例如 RUN 指令。每执行一条RUN 指令,镜像添加新的一层,并提交;最后是 CMD 指令,来指明运行容器时的操作命令。

构建镜像

docker build 命令会根据 Dockerfile 文件及上下文构建新 Docker 镜像。构建上下文是指 Dockerfile 所在的本地路径或一个URL(Git仓库地址)。构建上下文环境会被递归处理,所以构建所指定的路径还包括了子目录,而URL还包括了其中指定的子模块。

将当前目录做为构建上下文时,可以像下面这样使用docker build命令构建镜像:

docker build .

可以通过-f指定Dockerfile文件的位置:

docker build -f /path/Dockerfile .

可以通过-t参数指定构建成镜像的仓库、标签。

docker build -t nginx/v3 .
docker build -t nginx/v3:1.0.2 -t nginx/v3:latest .

简单示例

新建文件Dockerfile,复制以下内容

FROM nginx
RUN echo ‘<h1>Hello, Docker!</h1>‘ > /usr/share/nginx/html/index.html

 在 Dockerfile 文件所在目录执行:

docker build -t nginx:v1 .

接下来使用 docker run 命令来启动容器

docker run  --name docker_nginx_v1   -d -p 80:80 nginx:v1

用浏览器去访问这个 nginx 服务器:http://localhost/

 技术分享图片

修改容器内容

docker exec -it docker_nginx_v1   bash
root@3729b97e8226:/# echo <h1>Hello 2</h1> > /usr/share/nginx/html/index.html
root@3729b97e8226:/# exit
exit

技术分享图片

 

Docker(3):Dockerfile介绍及简单示例

标签:git仓库   通过   ring   use   cti   email   test   rar   usr   

原文地址:https://www.cnblogs.com/fancybox/p/10288731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!