Docker Compose
背景说明
当前随着互联网业务越来越复杂,越来越多的业务被拆分,所以现在微服务的理念越来越受欢迎,当前支撑微服务部署的就是k8s和docker,现在很多组建都开始docker,如mysql,redis等等,那如何管理这么多的docker镜像?怎么方便得启动这些服务?这就是docker-compse工具诞生的背景
安装
通过pip工具安装
$pip install docker-compose
或者
$pip3 install docker-compose
安装完成后查看版本确认是否安装成功
$docker-compose -v
一个例子
下面看一个实际的例子,这个是通过docker-compose
来管理mysql
和redis
这两个docker服务
下载mysql和redis镜像
$docker pull mysql
$docker pull redis
创建需要映射的目录
$mkdir -p /Users/sphantix/Data/data/docker/mysql/db
编写docker-compose.yml
写入如下内容, 注意volumes映射部分需要改成自己本机目录
version: "3.9"
services:
mysql:
image: "mysql:latest"
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=toor
volumes:
- /Users/sphantix/Data/data/docker/mysql/db:/var/lib/mysql
- /Users/sphantix/Data/data/docker/mysql/config:/etc/mysql/conf.d
- /Users/sphantix/Data/data/docker/mysql/my.cnf:/etc/my.cnf
redis:
image: "redis:latest"
command: redis-server /usr/local/etc/redis.conf
ports:
- 6379:6379
volumes:
- /Users/sphantix/Data/data/docker/redis:/data
- /Users/sphantix/Data/data/docker/redis/redis.conf:/usr/local/etc/redis.conf
docker-compose.yml文档说明
version
表示的是docker-compose的语法版本,不同的版本会有一些差异,具体看这里services
表示docker-compose需要管理的服务,在上面的例子中,有两个服务:mysql
和redis
下面对服务中使用到的关键词做个说明
image
表示需要启动的镜像名称,格式是REPOSITORY:TAG
ports
表示启动镜像后,需要映射的端口号,格式是host_port:container_port
, 等同与docker启动命令中的-p
, 如果有多个端口映射,那用多行表示environment
表示启动镜像后,需要传给容器的环境变量,等同于docker启动命令中的-e
volumes
表示启动镜像后,需要映射的路径地址,格式是host_path:container_path
, 等同于docker启动命令中的-v
常用命令
启动
docker-compose up
, 如果需要后台运行则加入-d
参数, docker-compose up -d
查看
docker-compose ps
, 查看命令和docker命令一样
关闭
docker-compose stop
, 也和docker停止命令一样
HELP
通过docker-compose -h
,这个万能命令查询所有能用的命令
Last updated
Was this helpful?