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的功能;
本文全部内容完,感谢您的阅读,希望能帮助到您!