DockerFile
dockerfile是用来构建docker镜像的文件!命令参数脚本!
构建步骤:
1、编写一个dockerfile文件
2、docker build构建成为一个镜像
3、docker run 运行镜像
4、docker push 发布镜像(DockerHub、阿里云镜像仓库!)
DockerFile的构建过程
基础知识
1、每个保留关键字(指令)都必须是大写字母
2、执行从上到下顺序执行
3、#表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交
dockerfile是面向开发的,我们以后要发布项目。做镜像,就需要编写dockerfile文件,这个文件很简单!
DockerFile:构建文件,定义了一切步骤,源代码
DockerImages:通过DockerFile构建生成的镜像
Docker容器:容器就是镜像运行起来提供服务
DockerFile的指令
FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,姓名+邮箱
RUN #Docker镜像构建的时候需要运行的命令
ADD #步骤:tomcat镜像,这个tomcat压缩包,添加内容
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOST #暴漏端口
CMD #指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #指定容
ONBUILD #当构建一个被继承DockerFile这个时候就会运行 ONBUILD 的指令。触发指令
COPY #将我们的文件拷贝到镜像中
ENV #构建的时候设置环境变量!
测试
创建一个自己的centos
#编写dockerfile的文件
FROM ubuntu
MAINTAINER ji<jihaoyun2022@1673.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN apt-get update && \
apt-get install -y vim net-tools && \
apt-get clean
EXPOSE 80
CMD echo $MYPATH && echo "----end----" && /bin/bash
#通过这个文件构建镜像
docker build -f mydockerfile -t myubuntu:0.1 . #一定不能忘了最后这一个点
docker history 镜像id 可以查看镜像的构建过程
CMD 和 ENTRYPOINT区别
CMD #指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT #指定容器启动的时候要运行的命令,可以追加命令
发布自己的镜像
1、地址:http://hub.docker.com注册自己的账号
2、确定这个账号时刻登录的
3、在我们的服务器上提交自己的镜像
4、登录成功之后
docker login -u 账号名称
docker push 账号名称/镜像名称:版本号
如果提交失败们可以更改版本号
docker tag 镜像id 版本号