概述

  • 在开发以及测试环境中,一般不使用docker直接启动镜像运行,使用docker-compose.yml或者swarm以及k8s进行容器编排,在此文中,采用docker-compose.yml文件容器编排,该方式适用于较为小型的软件规模,可用于poc或者生产直接部署。
services
  • 整个服务的最高层,第二层为各应用的名称
image
  • 启动的镜像文件名称
command
  • 覆盖镜像中CMD内容
volumes
  • 挂载本地文件到容器里面目录,实现数据持久化到宿主机
env_file
  • 指向本地的环境变量文件,由于变量会比较多,一般我们使用文件的方式来进行传递,同样地,如果同原先镜像ENV定义的重复,则会覆盖
secrets
  • 指向敏感文件,可以直接指定在最高层已定义的secrets的文件,在容器里面会被挂载在/run/secrets/<secret_name>
secrets:
      - MYSQL_USER
      - MYSQL_PASSWORD
      - MYSQL_ROOT_PASSWORD
  • 最高层定义同宿主机文件的路径
 secrets:
  MYSQL_USER:
    file: ./.MYSQL_USER
  MYSQL_PASSWORD:
    file: ./.MYSQL_PASSWORD
  MYSQL_ROOT_PASSWORD:
    file: ./.MYSQL_ROOT_PASSWORD
extra_hosts
  • 在容器中添加主机解析条目 /etc/hosts
extra_hosts:
  - "xiaojinran.win:47.105.38.115"
  • 效果:
# cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
47.105.38.115	xiaojinran.win
172.20.0.2	e85826792f95
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐