
Docker从入门到精通之Docker Compose
作者 |上海滩虎哥
来源 | 今日头条
Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,只需一个命令,就可以从配置中创建并启动所有服务。
Install Docker Compose
下载docker compose
给docker compose设置可执行权限
验证
Uninstallation
Getting Started
用python构建一个简易网页统计网页点击量,docker-compose进行发布
Step1:创建项目
创建项目目录
在项目目录中创建app.py文件,并把下面代码复制进去
创建requirements.txt文件,以下内容复制进去
Step2:创建Dockerfile文件
Step3:在docker-compose.yml中定义services
Step4:用Docker compose构建和运行app
- 进入项目目录,运行docker-compose up
- $ docker-compose up
- 在浏览器访问http://localhost:5000/ ,刷新页面看变化
- 查看使用compose构建的镜像
- $ docker images
Step5:绑定一个数据卷
将当前目录与容器的/code目录绑定,这样可以动态修改代码
Step6:重新构建和运行app
先docker-compose down停止服务,在构建
Compose file
用YAML文件定义服务,默认文件是docker-compose.yml,包含4个顶级key,version、services、networks、volumes
参考compose-spec/spec.md at master · compose-spec/compose-spec · GitHub
version
指定本 yml 依从的 compose版本
services
定义多个应用服务,包含环境配置、镜像构建等
build
指定构建镜像的路径
blkio_config
定义服务的block IO配置,参考compose-spec/spec.md at master · compose-spec/compose-spec · GitHub
container_name
指定自定义容器名称
depends_on
定义服务间启动或关闭的依赖关系
command
覆盖容器启动的默认命令
domainname
entrypoint
覆盖容器默认的entrypoint
env_file
从文件中添加环境变量到容器,可以是一个或多个文件
文件格式:
environment
添加环境变量
expose
暴露端口,但不映射到宿主机,只被连接的服务访问,仅可以指定内部端口
healthcheck
用于检测 docker 服务是否健康运行。
image
指定容器运行的镜像
labels
设置容器标签
links
连接到另一个容器的网络,简单将就是让容器相互连通
logging
服务的日志记录配置,driver:指定服务容器的日志记录驱动程序,默认值为json-file。有以下三个选项
仅在 json-file 驱动程序下,可以使用以下参数,限制日志得数量和大小。
syslog 驱动程序下,可以使用 syslog-address 指定日志接收地址。
network_mode
设置网络模式,格式如下:
networks
配置容器连接的网络
ipv4_address, ipv6_address
指定ip地址
ports
端口映射,映射主机与容器端口,格式:Host:ontainer
restart
容器重启策略
secrets
存储敏感数据,比如密码
volumes
将主机数据卷挂载到容器
working_dir
覆盖容器工作目录
Volumes 顶级目录
Networks 顶级目录
docker-compose 命令
Swarm集群
