docker-compose教程

1.docker compose介绍:

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

2.docker-compose安装命令

apt install docker-compose 

3.常用命令

  • docker-compose up

    • 启动并运行所有服务。
    • -d 选项可以在后台运行。
    • docker-compose up -d
    • docker-compose -f  xxxx.yml up -d   指定具体文件
  • docker-compose down

    • 停止并删除所有服务、网络和卷。
    • docker-compose down --volumes 可以同时删除挂载的卷。
  • docker-compose build

    • 构建或重建服务的 Docker 镜像。
    • docker-compose build --no-cache 可以在构建时跳过缓存。
  • docker-compose start

    • 启动已经存在的服务(不会创建新的容器)。
    • docker-compose start
  • docker-compose stop

    • 停止正在运行的服务容器,但不会删除它们。
    • docker-compose stop
  • docker-compose restart

    • 重启服务容器。
    • docker-compose restart
  • docker-compose logs

    • 查看服务的日志输出。
    • docker-compose logs -f 可以实时跟踪日志。
    • docker-compose logs <service_name> 查看特定服务的日志
  • docker-compose ps

    • 列出运行中的容器及其状态。
    • docker-compose ps
    • docker-compose -f docker-compose.yaml ps     # 查看指定的yaml文件
  • docker-compose exec

    • 在运行的容器内执行命令。
    • docker-compose exec <service_name> <command>
    • 例如,docker-compose exec mysql bash 进入 MySQL 容器的 bash shell。
  • docker-compose run

    • 在新容器中运行一次性命令(不会启动所有服务)。
    • docker-compose run <service_name> <command>
  • docker-compose pull

    • 从镜像仓库中拉取服务的镜像。
    • docker-compose pull
  • docker-compose push

    • 推送服务的镜像到镜像仓库。
    • docker-compose push
  • docker-compose config

    • 验证和查看 Compose 配置文件的解析结果。
    • docker-compose config
  • docker-compose version

    • 查看 Docker Compose 的版本信息。
    • docker-compose version

4.docker-compose文件结构

前提条件宿主机上要有相应文件:

 

/root/ljcx/heat-api/appsettings.json

 

/root/ljcx/heat-webgl/StreamingAssets/config.json

 

复制代码
services:
  mysql: # 地热 数据库
    image: mysql:5.7
    container_name: mysql
    restart: always
    environment:
      - 'MYSQL_ROOT_PASSWORD=123456'
      - 'MYSQL_DATABASE=heat_db'
      - 'TZ: Asia/Shanghai'
    ports:
      - 3306:3306
    volumes:
      - /root/ljcx/mysql/log:/var/log/mysql
      - /root/ljcx/mysql/data:/var/lib/mysql
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
    healthcheck:
      test: ["CMD-SHELL", "curl --silent localhost:3306 >/dev/null || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 3
  heat-api: # 服务端
    image: heat-api
    container_name: heat-api
    restart: always
    privileged: true
    ports:
     - "8080:80"
     - "8900:8900"
    environment:
     - 'TZ=Asia/Shanghai'
     - 'MODE=standalone'
    volumes:
      - /root/ljcx/heat-api/appsettings.json:/app/appsettings.json
    depends_on:
      - mysql
  heat-webgl: # 客户端
    image: heat-webgl
    container_name: heat-webgl
    restart: always
    privileged: true
    ports:
     - "9030:80"
    environment:
     - 'TZ=Asia/Shanghai'
     - 'MODE=standalone'
    volumes:
     - /root/ljcx/heat-webgl/StreamingAssets/config.json:/opt/web/StreamingAssets/config.json
复制代码

 

posted @   骑着蚂蚁快跑  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示