docker学习小记

最近恶补docker,快看吐了…

docker安装

不说了这个用yum或者apt简直不要太简单

docker基本命令

这里

抄一次也太烦了吧= =

Dockerfile

  • FROM
    表示基于哪个镜像构建

    1
    FROM openjdk:8-jre-alpine ##基于jdk8构建
  • LABEL

    写一些镜像介绍,不是必须但是最好还是写写

  • COPY,ADD

    COPY跟ADD其实是差不多的功能,都是把东西复制到镜像里面,不过ADD的功能更加强大一些,官方推荐能用COPY就用COPY因为语义清晰

    1
    COPY *.jar app.jar ##把jar拷贝到镜像内
  • EXPOSE

    暴露端口,并不是说写了就真的会开这个端口,只是写一下让人知道而已

  • CMD

    容器启动后会执行,有两种写法后面说

  • ENTRYPOINT

    作用跟CMD一样,区别后面说

  • RUN

    在镜像内执行的命令,装装软件设置下环境变量啥的

  • ENV

    设置环境变量

  • WORKDIR

    指定工作目录,如果目录不存在则会创建

CMD和ENTRYPOINT的区别

  1. CMD的命令会被 docker run 的命令覆盖而ENTRYPOINT不会
  2. docker run 后的命令会被ENTRYPOINT拼接到后面作为参数
  3. 如果CMD和ENTRYPOINT同时存在的话,CMD的命令会被拼接到ENTRYPOINT后面

两种写法

shell 跟 exec
具体看MrBird

还有啥

-e 跟application.yml的碰撞

在yml配置文件里面写

1
2
env:
${env}

启动的时候就可以docker run -e env 你要的envenv就设置进去了,这个还是比较有用的- -

end,后续想到啥了再补上!