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
。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