- 一. 安装docker-compose
- 二. docker-compose 应用
- 2.1 docker-compose 工具的参数与命令
- 2.2 docker-compose 模版文件
- version
- services
- image
- build
- ports
- volumes
- links
- networks
- command
- networks
二进制方式安装
https://github.com/docker/compose/releases
download目录后面接对应版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version二. docker-compose 应用
https://docs.docker.com/compose/cli-command/
docker-compose是一个官方的编排docker容器的工具,其实就是将多个容器 run 的命令写入一个yml文件一起run,所以会run docker 就会写docker-compose文件。
2.1 docker-compose 工具的参数与命令https://docs.docker.com/compose/reference/
compose 的参数挺多的,但是大多数不常用,工具的一些功能一般在配置文件中已实现,而工具的参数一般只做辅助作用。
个人常用参数
其它的都不常用
-f # 指定compose文件
命令
build # 构建,重新构建容器 config # 检查配置文件 down # 关掉容器 up # 启动容器 logs # 日志 rm # 删除容器2.2 docker-compose 模版文件
https://docs.docker.com/compose/compose-file/
默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。
标准的docker-compose.yml应该包含 version,services,networks 三部分
- version:定义容器版本
- services:定义容器服务
- networks:定义容器网络
例子:
version: "3"
services:
php:
build: ./php
networks:
- lnmp_test1
ports:
- "9000"
volumes:
- "./php/php.ini:/usr/local/etc/php/php.ini"
- "./www:/var/www/html/"
networks:
lnmp_test1:
driver: bridge
version
其中version 是docker engine 兼容版本
servicesservices的配置将会应用到服务中,它包括,服务名,服务使用的镜像,端口数据卷网络等等所有配置信息。
image指定容器使用的镜像,可以使用镜像名,或者镜像名:标签,或者网络上的其它镜像,或者id。
image: nginx image: httpd:v0.1 image: tutum/influxdb image: example-registry.com:4000/postgresql image: a4bc65fdbuild
如果不使用现成的镜像,可以自己写入dockerfile,在写compose文件时使用build构建这个镜像成为一个容器
build: /tmp/httpd/Dockerfileports
端口
ports: - "3000" - "8000:8000" - "49100:22" - "127.0.0.1:8001:8001"volumes
数据卷,如果指定路径就跟docker run -v 参数一样,如果指定volumes数据卷名那么就是一个docker run --mount 指定数据卷一样。
volumes: - /var/lib/mysql - cache/:/tmp/cache - ~/configs:/etc/configs/:rolinks
连接容器
links: - db - db:database - redisnetworks
指定网络,如果在services里指定了网络,那么在也要应该有对应的网络。
services:
some-service:
networks:
- some-network
- other-network
command
跟dockerfile里的CMD一样
version: '3'
services:
web:
build: ./
command: env
networks
https://docs.docker.com/compose/networking/
networks:
lnmp_test1:
driver: bridge
创建一个lnmp_test1的网络,网络模式为bridge桥



