docker-compose
使用 Docker Compose 部署应用
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用的服务,然后通过一条命令就能从配置中创建并启动所有服务。
1. 安装 Docker Compose
如果你使用的是 Docker Desktop,那么 Docker Compose 已经内置了,你无需额外安装。如果你是在 Linux 服务器上单独安装 Docker,则需要手动安装 Compose。
请访问 Docker Compose 官方安装教程,根据你的操作系统找到对应的安装指南并进行安装。
2. 创建一个 docker-compose.yml 文件
docker-compose.yml 文件是 Docker Compose 的核心,它定义了你的应用程序包含哪些服务、每个服务使用哪个镜像、如何映射端口、如何挂载数据卷以及环境变量等。
下面是一个基础的 docker-compose.yml 文件示例,用于部署一个简单的 Web 服务和一个数据库。
1 | |
docker-compose.yml 文件详解
version: "3.8":指定 Compose 文件的版本。不同版本支持不同的语法和功能,通常使用最新稳定版。services::定义你的应用包含的所有服务。web:第一个服务的名称,你可以自由命名。image: nginx:latest:指定该服务使用的 Docker 镜像。这里我们使用最新版的 Nginx。container_name: my_nginx:为容器指定一个自定义名称,方便管理。ports::定义端口映射。"8080:80"表示将宿主机的8080端口映射到容器的80端口。volumes::定义数据卷映射。- ./nginx/html:/usr/share/nginx/html表示将当前目录下的nginx/html文件夹挂载到容器的/usr/share/nginx/html目录,用于持久化网站文件。restart: always:设置容器在退出时自动重启,除非你手动停止。
db:第二个服务的名称。image: postgres:13:使用 PostgreSQL 13 镜像。environment::设置环境变量,常用于配置用户名、密码和数据库名等敏感信息。volumes::这里使用了一个命名数据卷postgres_data,这是 Docker 管理的卷,用于持久化数据库数据。它比直接挂载本地目录更灵活,且不易因目录权限问题出错。restart: unless-stopped:设置容器在任何情况下都重启,除了你手动停止它。
volumes::定义命名数据卷。postgres_data:声明了一个名为postgres_data的数据卷,供db服务使用。
3. 部署你的应用
创建好 docker-compose.yml 文件后,在文件所在的目录下打开终端,执行以下命令:
启动服务:
1
docker-compose up -dup:根据docker-compose.yml文件创建并启动所有服务。-d:在后台运行容器(detached 模式)。
查看服务状态:
1
docker-compose ps这条命令会显示所有由 Compose 启动的容器及其状态。
停止服务:
1
docker-compose stop这条命令只会停止容器,但不会删除它们。
停止并移除服务、网络和卷:
1
docker-compose downdown:停止并移除由up命令创建的所有容器、网络和数据卷。
通过以上步骤,你就可以使用 Docker Compose 来定义、部署和管理多容器应用了。希望这份教程对你有帮助!