• docker compose 使用


    简介

    Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理。

    Docker-Compose将所管理的容器分为三层,分别是工程project服务service以及容器container。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡

    Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。
    使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

    docker-compose 安装与卸载

    Release v2.9.0 · docker/compose · GitHub

    docker-composer github安装包:https://github.com/docker/compose/releases/tag/1.29.2

    下载

    1. #将安装包下载到/usr/local/bin/目录下
    2. cd /usr/local/bin/
    3. wget -O docker-compose https://github.com/docker/compose/releases/download/v2.9.0/docker-compose-linux-x86_64
    4. #为应用文件加上可执行权限
    5. chmod +x /usr/local/bin/docker-compose
    6. #创建软链接
    7. ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    8. #测试安装成功
    9. $ docker-compose --version
    10. Docker Compose version v2.9.0

    卸载

    rm /usr/local/bin/docker-compose

    容器编排

    编辑docker-compose.yml

    镜像 redis:5.0   与  mysql:5.7  需要提前下载好

    1. version: "3"
    2. services:
    3. redis:
    4. image: redis:5.0
    5. ports:
    6. - "6379:6379"
    7. volumes:
    8. - /home/docker/redis/redis.conf:/etc/redis/redis.conf
    9. - /home/docker/redis/data:/data
    10. command: redis-server /etc/redis/redis.conf --requirepass 123456
    11. mysql:
    12. image: mysql:5.7
    13. restart: always
    14. environment:
    15. MYSQL_ROOT_PASSWORD: "123456"
    16. MYSQL_USER: "xz"
    17. MYSQL_PASSWORD: "xu1109"
    18. MYSQL_DATABASE: "docker"
    19. container_name: "mysql"
    20. command:
    21. --character-set-server=utf8mb4
    22. --max_connections=1000
    23. --character-set-server=utf8mb4
    24. --collation-server=utf8mb4_general_ci
    25. --default-authentication-plugin=mysql_native_password
    26. ports:
    27. - '3337:3306'
    28. networks:
    29. my_net

    2.检测docker-compose.yml文件

    docker-compose  config -q

    无输出表示无错误

    3.启动容器

    docker-compose up -d

  • 相关阅读:
    物联网Lora模块从入门到精通(四)对某些端口的初始化
    游戏网页设计成品 学校班级网页制作模板 大学生静态HTML网页源码 dreamweaver网页作业 简单网页课程成品
    Spark基础【两个小案例、Yarn模式下任务执行源码】
    GitHub 报告发布:TypeScript 取代 Java 成为第三受欢迎语言
    从零开始写 Docker(五)---基于 overlayfs 实现写操作隔离
    安装WSL2 Ubuntu时提示指定的网络名不再可用
    Spring Cloud Gateway学习
    Packet Tracer - 在 VTY 线路上配置 ACL
    AcWing102. 最佳牛围栏
    【OPENVX】对象基本使用之vx_image
  • 原文地址:https://blog.csdn.net/qq_43035350/article/details/126406767