本文共 2286 字,大约阅读时间需要 7 分钟。
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
Compose 定位是:定义和运行多个 Docker 容器的应用。 我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定 义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某 项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后 端的数据库服务容器,甚至还包括负载均衡容器等。 Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件 (YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 有了Compose,我们就不需要再一个个组件去写一份Dockerfile,只需要将整体环境同一起来,写在一份docker-compose.yml文件即可Compose 中有两个重要的概念:
docker-compose在github上开源,地址为:
compose的yml文件版本和docker版本对应关系如下:老版本的Docker包叫做docker或者docker-engine,如果安装了老版本的docker得先卸载然后再安装新版本的docker。docker的发展非常迅速,apt源的更新往往比较滞后。所以docker官网推荐的安装方式都是下载docker安装脚本安装。
卸载老旧的版本(若未安装过可省略此步骤):apt-get remove docker docker-engine docker.io
安装最新的docker
curl -fsSL get.docker.com -o get-docker.shsh get-docker.sh
确认安装成功
docker run hello-world
安装的docker版本号如下:
方式一:从github上下载进行安装(常用)
这里请注意docker和docker-compose对应关系curl -L https://github.com/docker/compose/releases/download/1.23.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose#添加可执行权限chmod +x /usr/local/bin/docker-compose#查看安装版本docker-compose version
方式二:使用pip安装
#安装pipyum -y install epel-releaseyum -y install python-pip#确认版本pip --version#更新pippip install --upgrade pip#安装docker-composepip install docker-compose #查看版本docker-compose version
卸载方式:
#如果是github下载方式安装的,删除二进制文件即可。rm /usr/local/bin/docker-compose#如果是通过 pip 安装的,则执行如下命令即可删除。pip uninstall docker-compose
安装的版本号如下:
使用docker-compose启动一个nginx
在/home/nginx下新建docker-compose.yml文件,输入如下内容:version: "3" # 表示该docker-compose.yml文件使用的是Version 3 file formatservices: # 为project定义服务 nginx: # 指定服务名称 image: nginx # 指定服务所使用的镜像 ports: # 暴露端口信息 - 80:80
在yml文件所在的当前目录使用docker-compose up启动
也可以使用后台启动命令:docker compose up -d
[root@localhost nginx]# vim docker-compose.yml[root@localhost nginx]# docker-compose upCreating network "nginx_default" with the default driverPulling nginx (nginx:)...latest: Pulling from library/nginxf17d81b4b692: Pull completed5c237920c39: Pull completea381f92f36de: Pull completeCreating nginx_nginx_1_5666499f560d ... doneAttaching to nginx_nginx_1_40e5a205acb7
浏览器访问: