dockerfile构建及镜像发布

dockerfile的构建过程

基础知识

  1. 每个保留关键字都必须是大写字母
  2. 执行从上到下顺序进行
  3. #表示注释
  4. 每个指令都会创建一个新的镜像层,并提交!

在这里插入图片描述

​ dockerfile是面向开发的,我们以后要发布项目,做镜像,都要编写dockerfile文件,这个文件十分简单,逐渐成为企业交付的标准!

​ 步骤:开发,部署。运维……,缺一不可!

​ dockerfile:构建文件,定义一切的步骤,源代码

​ dockerimages:通过dockerfile构建生成的镜像,最终要发布和运行的产品

​ docker容器:容器就是镜像运行起来提供服务的

dockerfile的指令

以前就是用别人的镜像,现在可以构建自己的镜像了!

FROM                         #基础镜像,一切从这里构建,如centos
MAINTAINER                   #镜像是谁写的,姓名+邮箱
RUN                          #docker镜像构建时需要运行的命令
ADD                          #添加内容,步骤:如tomcat镜像,这个tomcat压缩包!
WORKDIR                      #镜像的工作目录 如/bin/bash
VOLUME                       #挂载的目录
EXPOSE                       #暴露端口配置
CMD                          #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT                   #指定这个容器启动时要运行的命令,可以追加命令
ONBUILD                      #当构建一个被继承dockerfile,这个时候就会运行ONBUILD,触发指令
COPY                         #类似ADD,将我们文件拷贝到镜像中
ENV                          #构建的时候设置环境变量!

在这里插入图片描述

实战测试(centos镜像)

docker hub中99%镜像都是从这个基础镜像过来的FROM scratch,然后配置需要的软件和配置来构建的!

创建一个自己的centos

#编写dockerfile
chen@LAPTOP-IGHM692L:/home/dockerfile$ cat mydockerfile-centos
FROM centos:2.0#自己提交的修改的镜像
MAINTAINER chen<2096814276@qq.com>

ENV MYPATH /usr/local
WORKDIR  $MYPATH

RUN yum -y install vim#centos官方停止维护,需要从另外的地方更新
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash
#通过此文件构建镜像
docker build -f mydockerfile-centos -t mycentos:v1.0 .
#测试运行
docker run -it mycentos:v1.0
pwd
ifconfig

测试运行!

在这里插入图片描述

版本对比

在这里插入图片描述

我们可以列出本地进行的变更历史

在这里插入图片描述

CMD与ENTRYPOINT的区别(略)

CMD                          #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT                   #指定这个容器启动时要运行的命令,可以追加命令

发布自己的镜像

1.在docker hub上注册账号

2.确定账号可以登录

3.在我们的服务器上提交自己的镜像

Usage:  docker login [OPTIONS] [SERVER]

Log in to a registry.
If no server is specified, the default is defined by the daemon.

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username

4.登陆完毕后可push镜像!

chen@LAPTOP-IGHM692L:~$ docker login -u shuanghanwuyu
Password:
WARNING! Your password will be stored unencrypted in /home/chen/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
docker tag e10a8e3c3cc4 shuanghanwuyu/mycentos:v1.0
docker push shuanghanwuyu/mycentos:v1.0

在这里插入图片描述
push成功后
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/clean43/article/details/129818717