Docker Compose 详细安装和使用教程

Docker Compose 详细安装和使用教程

发布时间:2024-10-09 01:57:19

1. 安装 docker

在安装 docker compose 之前,我们需要确保已经安装了 docker。

对于 ubuntu:

bash

# 更新包索引
sudo apt-get update

# 安装必要的依赖
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# 添加 docker 的官方 gpg 密钥
curl -fssl https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 更新包索引
sudo apt-get update

# 安装最新版本的 docker ce
sudo apt-get install docker-ce

# 验证 docker 是否安装成功
sudo docker run hello-world

对于 centos:

bash

# 安装所需的包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置稳定版仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装最新版本的 docker ce
sudo yum install docker-ce

# 启动 docker
sudo systemctl start docker

# 验证 docker 是否安装成功
sudo docker run hello-world

对于 macos 和 windows:

访问 docker 官网 下载并安装 docker desktop。

2. 安装 docker compose

linux:

bash

# 下载 docker compose 的当前稳定版本
sudo curl -l "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 给二进制文件执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 验证安装
docker-compose --version

macos 和 windows:

如果您已经安装了 docker desktop,它已经包含了 docker compose,无需额外安装。

3. 创建 docker compose 项目

让我们创建一个简单的 web 应用作为示例:

bash

# 创建项目目录
mkdir my_compose_project
cd my_compose_project

# 创建一个简单的 index.html 文件
echo "

welcome to my docker compose project!

" > index.html

# 创建 dockerfile
cat << eof > dockerfile
from nginx:alpine
copy index.html /usr/share/nginx/html
eof

# 创建 docker-compose.yml 文件
cat << eof > docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "8080:80"
eof

4. 使用 docker compose

构建和启动服务:

bash
docker-compose up -d

这个命令会做以下事情:

  • 构建必要的 docker 镜像
  • 创建定义在 docker-compose.yml 文件中的服务
  • 在后台启动容器 (-d 参数)

查看运行中的服务:

bash
docker-compose ps

查看服务日志:

bash
docker-compose logs

停止服务:

bash
docker-compose stop

停止并删除容器、网络、镜像和卷:

bash
docker-compose down

5. 扩展服务

docker compose 允许你轻松地扩展服务。例如,要运行 3 个 web 服务实例:

bash
docker-compose up -d --scale web=3

6. 管理多个环境

你可以使用多个 compose 文件来管理不同的环境。例如:

  • docker-compose.yml: 基本配置
  • docker-compose.override.yml: 开发环境特定配置
  • docker-compose.prod.yml: 生产环境特定配置

使用生产配置:

bash
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

7. 常见问题排查

权限问题:

如果遇到 "permission denied" 错误,可以尝试:

bash
sudo usermod -ag docker $user

然后注销并重新登录。

端口冲突:

如果遇到 "port is already allocated" 错误,可以在 docker-compose.yml 中更改端口映射:

yaml

ports:
- "8081:80" # 将 8080 改为 8081

网络问题:

如果遇到 "network xxx not found" 错误,可以手动创建网络:

bash
docker network create my_network

然后在 docker-compose.yml 中指定这个网络:

yaml

networks:
default:
external:
name: my_network

容器启动失败:

查看容器日志以获取更多信息:

bash
docker-compose logs

8. 高级用法

使用环境变量:

docker-compose.yml 中可以使用环境变量:

yaml

services:
web:
image: nginx
ports:
- "${nginx_port}:80"

然后在 .env 文件中定义变量:

 
nginx_port=8080

使用 docker compose 命令:

  • 构建或重建服务: docker-compose build
  • 列出镜像: docker-compose images
  • 查看容器内进程: docker-compose top
  • 暂停服务: docker-compose pause
  • 恢复服务: docker-compose unpause

通过这个详细的教程,您应该能够轻松地安装 docker compose,创建和管理 docker compose 项目,以及处理常见的问题

------------------------------------------------------------------------

上面是一个详细的docker compose安装和使用教程作为markdown文档。这个教程涵盖了从docker的安装到docker compose的高级用法的所有步骤。您可以在上面的文档中找到以下内容:

  1. docker的安装(适用于ubuntu、centos、macos和windows)
  2. docker compose的安装
  3. 创建一个简单的docker compose项目
  4. 使用docker compose的基本命令
  5. 扩展服务
  6. 管理多个环境
  7. 常见问题排查
  8. 高级用法,包括使用环境变量和其他docker compose命令

这个教程应该能够帮助您深入理解docker compose的安装和使用过程。

感谢提供:05互联