Loading

Docker Compose 基础

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

下载安装

项目在github上面: https://github.com/docker/compose/releases

下载:

  curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

给docket-compose 可执行的权限

  chmod +x /usr/local/bin/docker-compose

设置软链接

  ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

验证是否安装

  docker-compose version

卸载

  rm /usr/local/bin/docker-compose

Dockerfile

Dockerfile参数

  FROM	设置镜像使用的基础镜像
  MAINTAINER	设置镜像的
  LABEL	MAINTAINER的替代者,设置镜像的标签
  EXPOSE	暴露容器的端口
  ADD	构建镜像时,拷贝文件到容器中
  COPY	构建镜像时从宿主机拷贝文件到容器中
  ENTRIPOINT	设置容器启动后执行的命令
  CMD	设置容器启动后执行的命令
  VOLUME	设置挂载卷
  ENV	设置容器的环境变量
  ARG	设置系统的环境变量
  USER	设置运行RUN CMD ENTRYPOINT的用户名
  WORKDIR	设置RUN CMD ENTRYPOINT COPY ADD指令的工作目录
  ONBUILD	设置镜像的ONBUILD指令
  STOPSIGNAL	设置容器的退出信号量

FROM
Dockerfile中的第一个非注释行,用来指定基础镜像,默认情况下会先尝试从本地获取基础镜像,本地没有的话就会去DockerHub中拉取,常用的书写格式 如下:

  FROM image
  FROM image:tag
  FORM image:@:digest

MAINTAINER
用来指定作者的信息

LABEL
描述镜像的各种元数据

  LABEL com.example.version="0.0.1-beta"

ADD or COPY
COPY仅仅支持将本地的文件复制到容器中,使用ADD支持TAR文件和URL路径
使用ADD时注意,如果是tar包的话,宿主机上的tar包拷贝到image中会被解压, 但是过URL下载链接的制作镜像时,tar包不会被自动解压, 而且容器中的目录最后需要加上/ 不然启动不起来

ENTRIPOINT or CMD
都是在指定容器启动后的命令

entrypoint两种格式

  ENTRYPOINT ["executable","param1","param2"]
  ENTRYPOINT command param1 param2  (shell中执行)

ENTRYPOINT可以指定容器启动后执行的命令,当指定多个时,同样也只有最后一个命令会生效,并且它不能被docker run中指定的参数所覆盖

cmd的三种格式

  CMD ["executable","param1","param2"]  # 使用exec执行
  CMD command param1 param2  # 在 /bin/sh 中执行
  CMD ["param1","param2"] # 给ENTRYPOINT提供默认的参数

VOLUME
卷, 这个参数和我们启动容器时使用的docker run -v 宿主机目录:容器目录类似这种挂载券操作, 下面命令中的挂载点其实是容器中的目录,宿主机中的目录会被随机生成

  VOLUME mountpoint # 如 VOLUME /data1

EXPOSE
指定容器和外部进行通信的端口以及协议, EXPOSE 可以指个端口. 默认的协议是tcp协议

  EXPOSE <port>
  EXPOSE 80/tcp 9999/udp

ENV

  ENV <key> <value> # 一次只能指定一对k-v
  ENV <kay>=<value> # 一行指定多个k-v, 如果中间有空格通过\转义,或者使用""标识, 而且\还可以表示换行
posted @ 2020-12-02 20:46  Jansang  阅读(133)  评论(0编辑  收藏  举报