一.什么是dockerfile?
dockerfile类似于脚本,将docker镜像使用自动化的方式实现出来。
1.1dockerfile的作用
1.找一个镜像:例如ubuntu
2.创建一个容器:docker run ubuntu
3.进入容器:docker exec -it 容器 命令
4.操作:各种应用配置....
5.构造新镜像:docker commit
1.2dockerfile使用准则
1.首字母必须大写D
2.尽量将dockerfile放在空目录中
3.每个容器尽量只有一个功能
4.执行的命令越少越好
1.3dockerfile使用命令
格式:docker build -t 新生成镜像名:版本号 dockerfile所在目录(如果是当前目录,使用.替代)
演示:docker build -t nginx:v1.0 /home/sxf/dockerfile/nginx
例子:1.在本机创建/home/sxf/dockerfile/nginx目录
2.进入到nginx目录
3.vim Dockerfile ,输入下面内容:
#构建一个基于ubuntu的docker定制镜像
#基础镜像
FROM ubuntu
#镜像作者
MAINTAINER sxf test@163.com
#执行命令
RUN mkdir hello
RUN mkdir world
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install nginx -y
#对外端口
EXPOSE 80
4.docker build -t ubuntu-nginx:v1.0 .
看到这个表示操作成功了:
5.Dockerfile中语法命令说明:
FROM格式:
FROM <image>
FROM <image>:<tag>
说明:
(1) FROM必须放在除了注释之外的第一行
(2)可以有多个FROM,来创建多个image
(3) FROM后面是有效的镜像名称,如果该镜像本地仓库没有,那么会自动从远程仓库pull下来,如果远程也 没有就会报错。
MAINTAINER格式:
MAINTAINER <name> <邮箱>
说明:
指定该dockerfile文件的维护者信息。
RUN格式:
RUN <command> (shell模式)
RUN ["executable","param1","param2"] (exec模式)
说明:
(1) 生产模式中,推荐使用数组的格式
(2) shell模式 例如:RUN echo hello
(3) exec模式 例如:RUN ["echo" , "hello"]
PORT格式:
PORT 端口号
说明:
设置docker容器对外暴露的端口号