Dockerfile入门
1.注意事项
1)文件名首字母要大写
2)文件名就叫Dockerfile
3)存放Dockerfile文件的目录尽量是空 的 ,一个目录存放一个Dockerfile文件
4)镜像的功能尽量单一
5)步骤尽量精简 (会节省空间)
2.Dockerfile文件基本结构
# 基础镜像
# 制作新的镜像 依赖于那个镜像
# 可以通过docker images 进行查看
FROM ubuntu
# 镜像作者
# 谁写了这个dockerfile 文件 谁制作了docker镜像
MAINTAINER panda kstwoak47@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
# 运行指令
CMD ["usr/sbin/nginx", "-g", "daemon off;"]
# 对外端口
EXPOSE 80
3.使用Dockerfile文件创建镜像
docker build -t [镜像名]:[版本号] [Dockerfile的目录(当前目录只用写.)]
- 需要连接网络
- 参数
-t
指定构建后的镜像信息 --no-cache
第一次没有成功使用无缓存模式
4.优化Dockerfile
遵循步骤尽量精简的原则
原文件:
# 构建一个基于ubuntu的docker定制镜像
# 基础镜像
FROM ubuntu
# 镜像作者
MAINTAINER panda kstwoak47@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
# 运行指令
CMD ["usr/sbin/nginx", "-g", "daemon off;"]
# 对外端口
EXPOSE 80
优化后:
# 构建一个基于ubuntu的docker定制镜像
# 基础镜像
FROM ubuntu
# 镜像作者
MAINTAINER panda kstwoak47@163.com
# 执行命令
RUN mkdir hello world
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update && apt-get install nginx -y
# 对外端口
EXPOSE 80