Dockerfile官方指南:https://docs.docker.com/engine/reference/builder/(建议有一定的Dockerfile基础语法再去看)
一、Dockerfile基础语法
Dockerfile语法介绍:dockerfile 是用来构建docker镜像的脚本语法
Dockerfile语法(常用):
FROM #基础镜像,一切从这里开始构建
MAINTAINER #该镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令或脚本
ADD #从主机复制文件到镜像中(如果是压缩包,它会自己解压)
WORKDIR #镜像的工作目录
VOLUME #数据卷的挂载目录
EXPOSE #对外开放的端口
CMD #镜像启动时需要运行的命令(如果在启动时重新输入命令该命令会被替代,该命令不可追加参数)
ENTRYPOINT #镜像启动时需要运行的命令,可以追加参数
COPY #从主机复制文件到镜像中(如果是压缩包,它不会自己解压)
ENV #在构建时设置环境变量
ONBUILD #当构建一个被继承的dockerfile时,这个时候会运行ONBUILD ,来触发指令
通过dockerfile文件创建镜像:
命令:docker build -f dockerfile文件路径 -t 镜像名:tag .
注意命令最后有一个点"."
基础知识:
1.每个指令都必须是大写字母
2.执行顺序从上到下
3."#" 表示注释
4.每一个指令都会创建并提交一个新的镜像层
eg:创建一个自己的Centos(官方的Centos没有vim和net-tools)
vi dockerfile
FROM centos
MAINTAINER hy<2222222222@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
VOLUME ["volume01","volume02"] ----在创建时就挂载数据卷,共享数据
CMD echo $MYPATH
CMD "----------end---------"
保存后退出
执行 docker build -f /root/dockerfile -t mycentos:1.0 . 后
出现 Successfully built eb887100940d
Successfully tagged mycentos:1.0
则创建成功
二、发布自己创建的镜像到自己的仓库
发布到docker hub上
1.登录 https://hub.docker.com 创建一个仓库(没有账号的先注册)
我这里创建了一个 hanyi2002/hy 的仓库。
2.本地的linux登录docker官方
命令:docker login
3.改镜像的名字和标签(因为docker官方镜像仓库是以 用户名 来命名仓库的,所以我们要修改镜像的名字。)
刷新一下,即可看到自己的镜像:
拉取自己的镜像:
发布到阿里云上(国内常用)
1.登录阿里云官网
2.点击控制台
3.找到容器镜像服务
4.创建命名空间
5.创建仓库
6.点击仓库名