什么是docker-compose
compose是用来在docker中定义和运行复杂应用的小工具,简单的来说在配置文件中定义多个容器,然后通过命令就可以让定义多个容器都启动起来,而不需要一个手动启动起来。
安装
- 用pip安装,
sudo pip install -U docker-compose
- 二进制包安装 安装命令
编写配置文件
要想使用docker-compose就需要用到配置文件,配置文件名可以为docker-compose.yml,docker-compose.yaml,fig.yml和fig.yaml其中一个,在里面写入
接下来在配置文件所在目录执行docker-compose up
就可以启动mysql和wordpress这两个服务了
配置项详解
-
container_name 容器名字
-
image 镜像的名称和ID
-
build 指定 Dockerfile 所在文件夹的路径Compose将会利用它自动构建这个镜像,然后使用这个镜像
-
command 覆盖容器启动后默认执行的命令
-
links 链接别名
-
external_links 链接到配置文件外部的容器,甚至并非compose管理的容器。参数格式跟 links 类似
-
expose 暴露端口
-
ports 端口映射
-
volumes 挂载目录
-
volumes_from 从另一个服务或容器挂载它的所有卷
-
environment 环境变量
-
env_file 从文件中获取环境变量,可以为单独的文件路径或列表
- extends 扩展
-
net 设置网络模式,可以为bridge,none,container:[name or id],host
-
dns 配置DNS服务器
-
working_dir 工作目录,和dockerfile中WORKDIR用法一致
-
user 用户,和dockerfile中USER用法一致
-
hostname
-
entrypoint,entrypoint的值可以是一条命令,也可以是shell脚本路径
entrypoint: /code/entrypoint.sh
entrypoint: echo 123
- restart
restart always
docker-compose常用命令
-
查看版本信息
docker-compose --version
-
构建或重新构建服务
docker-compose build
(构建配置文件中的所有service),docker-compose build [service-name ...]
,service-name就是配置文件中指定的容器名 -
查看所有服务
docker-compose ps [service-name]
-
启动暂停杀死删除重启服务
docker-compose start/stop/kill/rm/restart [service-name ...]
-
运行服务,相当于docker run,
docker-compose up -d [service-name ...]
指定-d可以服务运行在后台 -
查看服务的日志信息
docker-compose logs [service-name]
-
pull服务镜像
docker-compose pull [service-name]
-
打印绑定的端口信息
docker-compose port [service-name]