温馨提示×

如何在Debian中使用Docker Compose

小樊
41
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