• docker compose


    简介

    Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack中的 Heat 十分类似。

    我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

    Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

    Compose 中有两个重要的概念:

    • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。

    • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

    下载与安装

    1、命令1(下载):

                    

    sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    

    2、命令2(授权):

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

    3、查看是否安装成功

    docker-compose --version

     4、卸载

    sudo rm /usr/local/bin/docker-compose

    docker compose 模板文件指令

    1. version: "3.2"
    2. services:
    3. tomcat01: #服务名称
    4. container_name: tomcat01 # 相当于run 的 --name
    5. image: tomcat:8.0-jre8 #使用哪个镜像 相当于run image
    6. ports: #用来完成host与容器的端口映射关系 相当于run -p
    7. - "8080:8080"
    8. volumes: #完成宿主机与容器中目录数据卷共享 相当于run -v
    9. #- /root/apps:/usr/local/tomcat/webapps #使用自定义路径映射
    10. - tomcatwebapps01:/usr/local/tomcat/webapps
    11. networks: #代表当前服务使用哪个网络桥 相当于run --networ
    12. - hello
    13. tomcat02: #服务名称
    14. container_name: tomcat02
    15. image: tomcat:8.0-jre8 #使用哪个镜像
    16. ports: #用来完成host与容器的端口映射关系
    17. - "8081:8080"
    18. volumes: #完成宿主机与容器中目录数据卷共享
    19. #- /root/apps:/usr/local/tomcat/webapps #使用自定义路径映射
    20. - tomcatwebapps02:/usr/local/tomcat/webapps
    21. networks: #代表当前服务使用哪个网络桥
    22. - hello
    23. mysql:
    24. image: mysql:5.7.32
    25. container_name: mysql
    26. ports:
    27. - "3307:3306"
    28. volumes:
    29. - mysqldata:/var/lib/mysql
    30. - mysqlconf:/etc/mysql
    31. environment:
    32. - MYSQL_ROOT_PASSWORD=root
    33. networks:
    34. - hello
    35. redis:
    36. image: redis:5.0.10
    37. container_name: redis
    38. ports:
    39. - "6379:6379"
    40. volumes:
    41. - redisdata:/data
    42. networks:
    43. - hello
    44. command: "redis-server --appendonly yes" #run 镜像之后用来覆盖容器内容默认命令
    45. volumes: #声明上面服务所使用的自动创建的卷名
    46. tomcatwebapps01: #声明指令的卷名 compose自动创建该卷名但是会在之前加入项目名
    47. external: #使用自定义卷名
    48. false #true确定使用指定卷名 注意:一旦使用外部自定义卷名启动服务之前必须手动创建
    49. tomcatwebapps02:
    50. mysqldata:
    51. mysqlconf:
    52. redisdata:
    53. networks: #定义服务用到桥
    54. hello: #定义上面的服务用到的网桥名称 默认创建就是 bridge
    55. external:
    56. true #使用外部指定网桥 注意:网桥必须存在

    docker compose 命令

    模板指令和命令的区别:

    模板指令:用来书写在docker-compose.yml文件中指令称之为模板指令,用来为服务进行服务的
    命令:用来对整个docker-compose.yml对应的这个项目操作,书写docker-compose命令之后命令

    简单就是一个在文件中操作,一个在文件外操作

    1、up指令

    启动docker compose服务

    docker-compose up

    启动docker compose服务,在后台启动

    docker-compose up -d

    2、down指令

    关闭docker compose 服务

    docker-compose down

    3、exec指令

    进入指定的容器,4:进入Redis容器

    docker-compose exec redis(docker-compose.yml中的声明服务ID) base

    4、ps指令

    列出项目中目前的所有容器。

    docker-compose ps

    列出项目中目前的所有容器的ID,-q 只打印容器的 ID 信息

    docker-compose ps -q

    5、restart 指令

    重启docker-compose服务,没有服务ID就重启项目中的所有服务。

    docker-compose restart 服务ID

    6、rm指令

    删除服务

    删除所有(停止状态的)服务容器。推荐先执行 docker-compose stop 命令来停止容器。

    docker-compose rm 服务ID

    -f 强制直接删除,包括非停止状态的容器。一般尽量不要使用该选项。

    docker-compose rm -f 服务ID

    -v 删除容器所挂载的数据卷。

    docker-compose rm -v 服务ID

    7、start 指令

    启动已经存在的服务容器。

    docker-compose start 服务ID

    8、stop 指令

    停止已经处于运行状态的容器,但不删除它。

    通过 docker-compose start 可以再次启动这些容器。

    选项:-t, --timeout TIMEOUT 停止容器时候的超时(默认为 10 秒)。

    docker-compose stop 服务ID

    9、top 指令

    查看各个服务容器内运行的进程。

    docker-compose top

    10、unpause 指令

    恢复处于暂停状态中的服务

    docker-compose unpause 服务ID

    11、pause 指令

    暂停服务容器

    docker-compose pause

    12、logs 指令

    查看服务日志

    docker-compose logs 服务ID

    第一个docker-compose程序

    1.创建目录hello

    2.进入hello目录,创建文件docker-compose.yml

    3.编辑文件,使用Tomcat服务

    4.启动服务:docker-compose up

    5.访问Tomcat

    6.配置多个Tomcat服务

    7.启动,命令:docker-compose up

    8.访问Tomcat

     

    结束!!


            要生活得漂亮,需要付出极大忍耐,一不抱怨,二不解释,而在你不知道该干嘛的时候,积极一点总是好的。

            

  • 相关阅读:
    【JavaEE】网络原理---TCP协议的易懂图文详解(确认应答、超时重传、连接管理、滑动窗口、流量控制)
    首发: ggrcs包,一个用于绘制直方图+限制立方样条+双坐标轴图的R包
    云原生微服务 第五章 Spring Cloud Netflix Eureka集成负载均衡组件Ribbon
    对象存储Minio-测试
    LLVM学习入门(1):Kaleidoscope语言及词法分析
    “torch.load“中出现的“Unexpected key(s) in state_dict“报错问题
    企业实施MES管理系统会增加哪些工作量
    虚拟机ubantu系统突然重启失去网络
    一个M阶B树具有特性
    【ROS2原理9】 QoS - 截止日期、活跃度和寿命
  • 原文地址:https://blog.csdn.net/weixin_49107940/article/details/125627828