这里是文章模块栏目内容页
docker-compose配置文件yml的参数介绍

docker-compose配置文件yml的参数介绍


通过查看docker容器里面部署的localstack来看 docker-compose的配置参数;

并通过对配置参数的设置,实现docker 挂载到磁盘的物理地址路径设置;

version: '2.1'
services:
  localstack:
    container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
    image: localstack/localstack
    network_mode: bridge
    ports:
      - "4566:4566"
      - "4571:4571"
      - "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
    environment:
      - SERVICES=${SERVICES- }
      - DEBUG=${DEBUG- }
      - DATA_DIR=${DATA_DIR- }
      - PORT_WEB_UI=${PORT_WEB_UI- }
      - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR- }
      - KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
      - DOCKER_HOST=unix:///var/run/docker.sock
      - HOST_TMP_FOLDER=${TMPDIR}
      - HOSTNAME=amazonaws.com
      - DEFAULT_REGION=eu-west-3
      - DATA_DIR=/home/data_localstack/data
    volumes:
      - "${TMPDIR:-/home/data_localstack}:/home/data_localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"

首先我们看 services 配置段:

localstack 是一个容器的配置段,也就是一个services;

localstack容器的名称:container_name 指定名称 默认值是 localstack_main,

加入运行docker-compose up 命令没有带LOCALSTACK_DOCKER_NAME 参数,那么容器名称默认是 localstack_main

其他参数如果没指定 参数,都采用默认值;


容器启动的镜像文件是 image: 值是 localstack/localstack

ports:是docker容器映射到本地主机的端口号;

environment: 环境变量,这些变量用于启动容器的,当容器启动时,docker把这些变量传递给容器;

其实是类似在命令行里面传递参数一样,它用于docker给 启动容器传参。


 volumes:是docker映射到本地主机的物理空间, 也就是docker的容器的数据会存储在这里指定的路径上;

 在本配置示例上,是把localstack的数据持久保存磁盘存到了 /home/data_localstack;

 可以把volumes 的配置理解成是给容器挂载物理空间磁盘地址;


 /var/run/docker.sock:/var/run/docker.sock 这一个配置功能很强大,

 本地主机上的docker是分为client端和server端。

 当在shell里面执行 docker --version 命令时,其实是doccker的client端发送命令给docker服务返回信息的;

 而这个docker服务是通过/var/run/docker.sock管道来传递数据的;

 意味着只要给 /var/run/docker.sock这个管道发送命令,就能收到docker的服务返回的数据;

 在任何地方,给这个管道发命令,就等于是给docker服务发命令,可以让docker执行功能;

 那么"/var/run/docker.sock:/var/run/docker.sock"这个配置项,把管道映射到了容器内;

 在容器内就也可以像在shell里面一样,运行docker命令了,即实现容器里面和在主机里面一样运行docker的功能;

 

本文全部内容完,感谢您的阅读,希望能帮助到您!