在梳理完服务之后,开始对服务进行容器化,此前已经对数据库和消息队列容器化了,在此之后使用docker-compose对前端站点进行容器化,于是记录一下docker-compose初步的安装与使用方法。

安装方法

1.从github最新版本的docker-compose

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

2.添加执行权限

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

3.创建软连接

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4.验证版本

docker-compose --version

基本操作命令

  • 启动服务:

docker-compose up
# 后台启动
docker-compose up -d
# 指定配置文件
docker-compose -f docker-compose.yml up -d
  • 停止服务:

bashdocker-compose down
# 停止并删除卷
docker-compose down -v
# 停止并删除镜像
docker-compose down --rmi all
  • 查看服务状态:

# 查看运行中的服务
docker-compose ps
# 查看服务日志
docker-compose logs
# 实时查看日志
docker-compose logs -f

服务管理命令

  • 启动特定服务:

docker-compose start <服务名>
  • 停止特定服务:

docker-compose stop <服务名>
  • 重启服务:

docker-compose restart <服务名>
# 重启所有服务
docker-compose restart
  • 暂停/恢复服务:

# 暂停服务
docker-compose pause <服务名>
# 恢复服务
docker-compose unpause <服务名>

构建和镜像管理

  • 构建服务镜像:

docker-compose build
# 构建特定服务
docker-compose build <服务名>
# 强制重新构建
docker-compose build --no-cache
  • 拉取镜像:

docker-compose pull
# 拉取特定服务镜像
docker-compose pull <服务名>
  • 推送镜像:

docker-compose push
# 推送特定服务镜像
docker-compose push <服务名>

容器操作命令

  • 进入容器:

docker-compose exec <服务名> bash
# 或者使用 sh
docker-compose exec <服务名> sh
  • 运行一次性命令:

docker-compose run <服务名> <命令>
# 例如运行数据库迁移
docker-compose run web python manage.py migrate

查看和调试命令

  • 查看服务日志:

docker-compose logs <服务名>
# 查看最近日志
docker-compose logs --tail 50 <服务名>
# 实时跟踪日志
docker-compose logs -f <服务名>
  • 查看容器进程:

docker-compose top
# 查看特定服务进程
docker-compose top <服务名>

查看服务配置:

# 查看配置
docker-compose config
# 查看服务依赖关系
docker-compose config --services

扩展和资源管理

  • 扩展服务实例:

docker-compose up --scale <服务名>=<数量>
# 例如扩展web服务到3个实例
docker-compose up --scale web=3
  • 查看资源使用情况:

docker-compose events
# 查看实时事件
docker-compose events --json

环境和变量

  • 设置环境变量:

# 使用 .env 文件
docker-compose --env-file .env up
# 覆盖项目名称
docker-compose -p <项目名> up

常用选项

  • 指定配置文件:

-f <文件名> 或 --file <文件名>
  • 指定项目名称:

-p <项目名> 或 --project-name <项目名>
  • 后台运行:

-d 或 --detach
  • 强制重建:

--build

以他人的幸福为幸福,以他人的享乐为享乐。