• 【云原生】Docker 进阶 -- 阿里云服务器安装Docker Compose与初体验


    📢📢📢📣📣📣

    哈喽!大家好,我是【Bug 终结者,【CSDNJava领域优质创作者】🏆,阿里云受邀专家博主🏆,51CTO人气博主🏆 .

    一位上进心十足,拥有极强学习力的【Java领域博主】😜😜😜

    🏅【Bug 终结者】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。 偶尔会分享些前端基础知识,会更新实战项目,面向企业级开发应用
    🏅 如果有对【后端技术】、【前端领域】感兴趣的【小可爱】,欢迎关注【Bug 终结者】💞💞💞


    ❤️❤️❤️ 感谢各位大可爱小可爱! ❤️❤️❤️

    在这里插入图片描述

    一、什么是Docker Compose?

    docker-compose是基于docker的开源项目,托管于github上,由python实现,调用 docker服务的API负责实现对docker容器集群的快速编排,即通过一个单独的yaml文件,来定义一组相关的容器来为一个项目服务。

    Docker Compose 是一个工具,命令行工具,这个工具可以通过yml文件定义多容器的docker应用,通过一条命令就可以根据yml文件的定义去创建或管理多个容器

    二、Docker Compose 能用来做什么?

    我们平时操作Docker,还是很原始的操作,手动操作Docker的步骤可分为

    • 找到一个系统镜像
    • 安装vm 或者一些基本的工具
    • 在vm中安装镜像
    • 执行镜像

    docker-compose 是一个用来把 docker 自动化的东西

    在我们的 Docker Compose 中,只需要写一个 docker-compose.yml 文件容器编排,然后通过命令去启动就可以达到自动化的操作。

    三、阿里云服务器安装Docker Compose

    Docker Compose 是Docker官方的开源产品,需要自行安装,DockerFile让程序在任何地方执行

    下载

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    # 这个可能快点
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    • 1
    • 2
    • 3
    • 4

    如果下载不下来,那么可以 去我上传的资源上去下载

    下载下来之后,我们使用 Filezilla 去将我们下载下来的文件上传至服务器 /usr/local/bin 下

    在这里插入图片描述

    下载成功~

    进行授权

    chmod +x /usr/local/bin/docker-compose
    
    • 1

    进行测试

    docker-compose version
    
    • 1

    在这里插入图片描述

    测试通过,成功安装了我们的Docker Compose~

    四、初体验Docker Compose

    ☁️安装

    官方网址

    这里在官方下载的话太慢了,而且官方使用的是 Flask框架,下载到本地后,可能会起不来,所以说,我们自己来写。

    创建一个python+Redis的应用,计数器的功能

    创建工程目录

    mkdir compose_test
    cd compose_test
    # 源码文件夹
    mkdir src
    # 存放Docker执行文件
    mkdir docker 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    创建app.py

    在 compose_test/src 下创建 app.py 具体内容如下

    from flask import Flask
    from redis import Redis
     
    app = Flask(__name__)
    redis = Redis(host='redis', port=6379)
     
    @app.route('/')
    def hello():
        count = redis.incr('hits')
        return 'Hello World! I have been seen {} times.\n'.format(count)
     
    if __name__ == "__main__":
        app.run(host="0.0.0.0", debug=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    创建我们的 需求文件 requirements.txt

    在 compose_test/src 下创建 requirements.txt 文件,具体内容如下

    flask
    redis
    
    • 1
    • 2

    在这里插入图片描述

    创建容器的Dockerfile文件

    在 compose_test 下创建 Dockerfile文件,具体内容如下

    FROM python:3.7
    
    COPY src/ /opt/src
    WORKDIR /opt/src
    
    RUN pip install -r requirements.txt
    CMD ["python", "app.py"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Dockerfile介绍

    从远程仓库拉取python镜像

    复制src 目录到 /opt/src 目录

    将容器的工作目录设置为 /opt/src 默认目录

    安装 Python依赖的关系

    将容器默认命令设置为 python app.py

    定义 docker-compose 执行脚本

    在 compose_test/docker 下新建 docker-compose.yml,具体内容如下

    version: '3'
    services:
      web:
        build: ../
        ports:
         - "5000:5000"
        volumes:
         - ../src:/opt/src
      redis:
        image: redis:3.0.7
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    compose具体介绍

    定义了两个服务,一个是web,一个是redis

    web容器:

    • 使用了当前 docker-compose.yml 文件所在目录的上级中的Dockerfile构建镜像
    • 将容器端口暴露映射至5000端口
    • 将容器卷目录挂载到容器外部 /opt/src 目录,持久化到本地磁盘

    redis容器:

    • redis 服务镜像地址为下载 3.0.7版本

    在这里插入图片描述

    ⚡测试

    通过命令测试

    注意:该命令必须在 存在有docker-compose.yml 的目录下执行

    # 直接执行
    docker-compose up 
    # 后台方式执行
    docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    服务启动成功

    docker ps
    
    • 1

    在这里插入图片描述

    查看网络情况

    # 查看所有的网络情况
    docker network ls
    #查看某一个网络的详细信息
    docker network inspect id
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    输入地址测试

    # 服务器直接测试
    curl localhost:5000
    
    • 1
    • 2

    在这里插入图片描述

    测试成功~

    关闭服务命令

    docker-compose down
    ctrl + c
    
    • 1
    • 2

    五、Yaml规则

    docker-compose.yml 是核心配置文件

    他的规则如下

    # 3层
    
    version: '' # 版本
    services: # 服务
    	服务1: web
    		# 服务配置
    		images
    		build
    			# 可以通过 该命令指定我们的执行顺序,优先加载数据库
    			depends_on:
    				mysql
    				redis
    		network
    		......
    	服务2: redis
    		.....
    	服务3: mysql
    		.....
    # 其他配置 网络/卷 全局规则
    volumes:
    networks:
    configs
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    ⛵小结

    以上就是【Bug 终结者】对 【云原生】Docker 进阶 – 阿里云服务器安装Docker Compose与初体验 的简单介绍,Docker Compose 工具,可以很好的解决我们的微服务部署问题,在小规模的微服务情况下,可采用我们的 Docker Compose!

    如果这篇【文章】有帮助到你,希望可以给【Bug 终结者】点个赞👍,创作不易,如果有对【后端技术】、【前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!

  • 相关阅读:
    服务器测试之linux下RAID/HBA管理命令汇总
    PyTorch 官方库「上新」,TorchMultimodal 助力多模态人工智能
    Java设计模式:fly weight 享元模式
    ServiceDesk Plus IT自主服务平台
    《C++》动态内存管理
    【Redis底层解析】跳跃表
    第十五章 字符串本地化和消息字典(一)
    JAVA 自定义注解,实现数据脱敏处理
    稳定性实践:开关和预案
    【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM
  • 原文地址:https://blog.csdn.net/weixin_45526437/article/details/125513286