一、安装 Docker

Docker Compose 依赖于 Docker 环境,因此在安装 Docker Compose 之前,需要先安装 Docker。

如果你还没有安装 Docker,请参考以下步骤:

1.1、 在 Docker 官网 上下载 Docker 安装程序并安装;

1.2、 安装完成后,验证 Docker 是否正确安装:

docker --version

如果正确安装,将会显示 Docker 版本信息。

二、安装 Docker Compose

在安装 Docker Compose 之前,需要确认你的系统是否支持 Docker Compose,官方支持以下几个平台:

  • Linux 64 位
  • macOS 64 位
  • Windows 64 位

如果你的系统符合要求,请按照以下步骤安装 Docker Compose:

2.1、下载 Docker Compose 最新版本:

sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/{VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

注意将 {VERSION} 替换为你要下载的 Docker Compose 版本。版本查询可点击 Docker Compose 官网查看

2.2、将下载的二进制文件设置为可执行文件:

sudo chmod +x /usr/local/bin/docker-compose

2.3、验证 Docker Compose 是否安装成功:

进入到 /usr/local/bin/ 目录下,执行以下命令:

docker compose version

如果正确安装,将会显示 Docker Compose 版本信息。

三、使用 Docker Compose

安装完成 Docker Compose 后,你可以使用它来管理多容器 Docker 应用程序。

下面是一个使用 Docker Compose 运行 Nginx 和 PHP-FPM 的示例:

3.1、创建一个目录用于存放 Docker Compose 配置文件:

mkdir myapp
cd myapp

3.2、创建一个 docker-compose.yml 文件,内容如下:

ompose和Docker兼容性:
Compose 文件格式有3个版本,分别为1, 2.x 和 3.x
目前主流的为 3.x 其支持 docker 1.13.0 及其以上的版本

version: '3' # 指定 compose 文件的版本
services: # 定义所有的 service 信息, services 下面的第一级别的 key 既是一个 service 的名称
  web: # 定义一个名为 web 的 service
    image: nginx # 定义使用的镜像
    ports: # 定义容器和宿主机的端口映射关系
      - "8080:80" 
    volumes: # 定义容器和宿主机的卷映射关系
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on: # 定义容器启动的依赖关系
      - php
  php:
    image: php:fpm
    volumes:
      - ./app:/var/www/html

这个文件定义了两个服务:webphpweb 服务使用 Nginx 镜像,并将它的端口映射到主机的 8080 端口,同时将 nginx.conf 文件挂载到容器的 /etc/nginx/nginx.conf 路径,依赖于 php 服务。php 服务使用 PHP-FPM 镜像,并将 /app 目录挂载到容器的 /var/www/html 路径。

3.3、在 myapp 目录下启动 Docker Compose:

docker-compose up

这会启动 webphp 服务,并将它们连接在一起。

如果你想在后台运行 Docker Compose,请使用 -d 参数:

docker-compose up -d

3.4、访问 Nginx:

打开浏览器,访问 http://localhost:8080,你应该能看到 Nginx 的欢迎页面。
如果你在 Docker 容器中运行 Docker Compose,请使用容器的 IP 地址代替 localhost

3.5、停止 Docker Compose:

如果你使用了 -d 参数启动了 Docker Compose,可以使用以下命令停止 Docker Compose:

docker-compose down

这会停止并删除所有 Docker Compose 启动的容器。

添加微信