DockerFile

docker是企业交付的一个标准,以前用war包,jar包可能存在版本不一致导致问题等等。现在docker镜像直接连带着环境也一起交付了。消除了很多灰色因素

步骤

  1. dockerFile定义命令 (每个命令在docker里面都是一层)
  2. 根据dockerFile创建镜像
  3. 运行镜像获得容器

image.png

  1. FROM #基础镜像
  2. MAINTAINER #维护人
  3. RUN #镜像构建的时候会启动的命令
  4. ADD #在基础镜像上叠加东西 tomcat
  5. WORKDIR #镜像的工作目录(镜像在宿主机的工作目录?)
  6. VOLUME #挂载的目录
  7. EXPOSE #开放端口
  8. CMD #指定镜像启动时运行的命令(只有最后一个会生效)
  9. ENTRYPOINT #指定镜像启动时运行的命令
  10. ONBUILD #当构建被继承
  11. COPY #将文件目录下的文件拷贝到镜像中
  12. ENV #设置镜像的环境变量

ps:add添加的如果是压缩包的话,命令会自动解压压缩包

构建自己的CentOS

编辑dockerFile

  1. FROM centos
  2. MAINTAINER sms<223337742@qq.com>
  3. ENV MYPATH /usr/local
  4. WORKDIR $MYPATH
  5. RUN yum -y install vim
  6. RUN yum -y install net-tools
  7. EXPOSE 80
  8. CMD echo $MYPATH
  9. CMD echo "----end----"
  10. CMD /bin/bash

根据dockerFile创建镜像

如果这个文件就叫dockerFile是可以不用声明文件名的,它会自动识别

  1. docker build -f dockerFile文件 -t 镜像名:[tag] .
  2. ps:后面有个点是容易被遗忘的

查询镜像的所有结构

通过这个命令查看一个镜像里面一共有多少叠加的内容

  1. docker history 镜像id

EntryPoint 和 CMD

主要体现在启动镜像时,想要追加命令的情况下
EntryPoint可以直接追加
CMD会被追加命令替换掉

构建一个Tomcat

  1. FROM centos #
  2. MAINTAINER cheng<1204598429@qq.com>
  3. COPY README /usr/local/README #复制文件
  4. ADD jdk-8u231-linux-x64.tar.gz /usr/local/ #复制解压
  5. ADD apache-tomcat-9.0.35.tar.gz /usr/local/ #复制解压
  6. RUN yum -y install vim
  7. ENV MYPATH /usr/local #设置环境变量
  8. WORKDIR $MYPATH #设置工作目录
  9. ENV JAVA_HOME /usr/local/jdk1.8.0_231 #设置环境变量
  10. ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.35 #设置环境变量
  11. ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib #设置环境变量 分隔符是:
  12. EXPOSE 8080 #设置暴露的端口
  13. CMD /usr/local/apache-tomcat-9.0.35/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.35/logs/catalina.out # 设置默认命令

上传镜像到dockerHub

hub.docker.com
登录

  1. docker login -u 账号 -p 密码

push

  1. docker push 账号名/镜像名[:版本号]
  2. docker push kuangshen/tomcat:1.0

阿里云镜像服务

因为dockerHub没翻墙可能要卡,所以用阿里云镜像来加速一下
路径
容器服务 - 容器镜像服务 - 命名空间(创建一个命名空间) - 镜像仓库(创建镜像仓库)
image.png
image.png
image.png
点击仓库名字,就会有比较完善的阿里云仓库代码

小节

image.png