DockerFile介绍
Dockerfile就是用来构建docker镜像的构建文件!命令脚本!
构建步骤:
- 编写一个dockerfile文件
- docker build 构建成为一个镜像
- docker run 镜像
- docker push 发布镜像(DockerHub,阿里云镜像仓库)
打开官网dockerhub
点进其中一个版本(发现镜像就是一个dockerfile文件)
Dockerfile构建过程
基础知识:
Dockerfile指令
From #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,姓名加邮箱
RUN #镜像构建的时候需要运行的命令
ADD # 如建tomcat镜像,这里需要添加tomcat压缩包
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOSE #暴露端口配置
CMD #指定这个容器启动的时候要运行的命令
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD #当构建一个被继承的dockerfile 这个时候会运行ONBUILD指令
COPY #类似ADD,将我们文件拷贝到镜像中
ENV #构建的时候设置环境变量
实战测试
DockerHub中99%镜像都是从这个基础镜像过来的 FROM scratch
创建自己的centos
#创建dockerfile脚本文件
FROM centos
MAINTAINER wise<1376053924qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "--------end----------"
CMD /bin/bash
#运行dockerfile脚本文件建立自定义镜像
docker build - f dockerfile-centos -t mycentos:1.0 .
#查看生成的镜像
[root@wise mydockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos 1.0 250259b80eb4 40 minutes ago 295MB
#运行镜像
docker run -it mycentos:1.0
#输入vim和ifconfig命令测试自定义镜像是否成功添加vim和net-tools工具
CMD和ENTRYPOINT区别
CMD #指定这个容器启动的时候运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
测试CMD
实战:Tomcat镜像
1.准备生成镜像需要的文件 tomcat压缩包,jdk的压缩压缩包
发布自己的镜像
DockerHub
#先注册一个dockerhub账号
docker login -u [DockerHub用户名] #登录docker账号
docker push [镜像名]:[镜像版本号tag] #push到远程镜像
阿里云镜像
1.登录阿里云并找到容器镜像服务
2.创建命名空间
3.创建镜像仓库
4.浏览镜像信息
#提交本地镜像到阿里云镜像服务器三个步骤 全部命令修改[]内的内容即可
docker login --username=wiserzc registry.cn-hangzhou.aliyuncs.com #登录阿里云账号
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/wise_kongjian/wise:[镜像版本号] #确定发布哪个镜像
docker push registry.cn-hangzhou.aliyuncs.com/wise_kongjian/wise:[镜像版本号] #push镜像到远程阿里云镜像服务器
这个自定义的仓库,所以具体命令最好查看官方文档