温馨提示×

如何在Debian中使用Docker Compose

小樊
54
2025-10-02 05:15:13
栏目: 智能运维

1. 安装Docker Engine
在Debian上使用Docker Compose前,需先安装Docker Engine(社区版)。执行以下命令更新软件包列表并安装必要依赖:

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

添加Docker官方GPG密钥(用于验证软件包完整性):

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

配置Docker稳定版仓库(替换$(lsb_release -cs)为当前Debian版本,如bookworm):

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

再次更新软件包列表并安装Docker Engine:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

启动Docker服务并设置开机自启:

sudo systemctl start docker
sudo systemctl enable docker

验证Docker安装(运行测试容器):

sudo docker run hello-world

2. 安装Docker Compose
Docker Compose用于定义和编排多容器应用,需单独安装。执行以下命令下载最新版本的二进制文件(替换1.29.2为最新版本号,可从Docker Compose GitHub Releases获取):

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

赋予执行权限:

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

验证安装(显示版本信息即为成功):

docker-compose --version

3. 创建Docker Compose文件
在项目目录(如~/myapp)中创建docker-compose.yml文件,定义服务、网络和卷。以下是一个**Web(Nginx)+ 数据库(MySQL)**的示例:

version: '3.8'  # 指定Compose文件格式版本
services:
  web:          # Web服务(Nginx)
    image: nginx:latest  # 使用官方Nginx镜像
    ports:
      - "80:80"  # 将主机80端口映射到容器80端口
    volumes:
      - ./html:/usr/share/nginx/html  # 挂载主机html目录到容器内(用于存放网页文件)
    depends_on:
      - db  # 依赖db服务(确保db先启动)
  db:           # 数据库服务(MySQL)
    image: mysql:5.7  # 使用MySQL 5.7镜像
    environment:
      MYSQL_ROOT_PASSWORD: example  # 设置root用户密码
      MYSQL_DATABASE: mydb  # 创建默认数据库
      MYSQL_USER: user  # 创建普通用户
      MYSQL_PASSWORD: password  # 设置普通用户密码
    volumes:
      - db_data:/var/lib/mysql  # 持久化数据库数据(避免容器重启丢失)
volumes:
  db_data:  # 定义数据卷(用于存储MySQL数据)

4. 启动与管理服务

  • 启动服务(后台运行):在docker-compose.yml所在目录执行以下命令,Docker会根据文件定义创建并启动所有服务:
    docker-compose up -d
    
    -d参数表示后台运行,若需查看实时日志,可省略-d
  • 查看服务状态:检查服务是否运行正常,显示各服务的容器ID、状态等信息:
    docker-compose ps
    
  • 查看服务日志:查看指定服务(如web)的日志输出:
    docker-compose logs web
    
  • 停止服务:停止并删除所有相关容器、网络(保留数据卷):
    docker-compose down
    
    若需删除数据卷(彻底清除数据),可添加-v参数:docker-compose down -v

5. 常用高级操作

  • 进入容器:进入web服务的容器内部(用于调试或执行命令):
    docker-compose exec web bash
    
  • 构建自定义镜像:若docker-compose.yml中定义了build指令(如指向Dockerfile),可使用以下命令构建镜像并启动服务:
    docker-compose up -d --build
    
  • 重启服务:重启指定服务(如db):
    docker-compose restart db
    

0