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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Docker 进阶 之 Compose 容器编排详解
📢📢📢📣📣📣

哈喽!大家好,我是【 Bug 终结者,【CSDNJava领域优质创作者】🏆,阿里云受邀专家博主🏆,51CTO人气博主🏆 . <br/>
一位上进心十足,拥有极强学习力的【 Java领域博主】😜😜😜 <br/>
🏅【Bug 终结者】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。 偶尔会分享些前端基础知识,会更新实战项目,面向企业级开发应用
🏅 如果有对【后端技术】、【前端领域】感兴趣的【小可爱】,欢迎关注【Bug 终结者】💞💞💞


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

在这里插入图片描述

@[TOC]

一、什么是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

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

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

在这里插入图片描述

下载成功~

进行授权

chmod +x /usr/local/bin/docker-compose
进行测试
docker-compose version

在这里插入图片描述

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

四、初体验Docker Compose

☁️安装

官方网址

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

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

创建工程目录
mkdir compose_test
cd compose_test
# 源码文件夹
mkdir src
# 存放Docker执行文件
mkdir docker 

在这里插入图片描述

创建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)
创建我们的 需求文件 requirements.txt

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

flask
redis

在这里插入图片描述

创建容器的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"]

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

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

在这里插入图片描述

服务启动成功
docker ps

在这里插入图片描述

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

在这里插入图片描述

输入地址测试
# 服务器直接测试
curl localhost:5000

在这里插入图片描述

测试成功~

关闭服务命令
docker-compose down
ctrl + c

五、Yaml规则

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

他的规则如下

# 3层

version: '' # 版本
services: # 服务
    服务1: web
        # 服务配置
        images
        build
            # 可以通过 该命令指定我们的执行顺序,优先加载数据库
            depends_on:
                mysql
                redis
        network
        ......
    服务2: redis
        .....
    服务3: mysql
        .....
# 其他配置 网络/卷 全局规则
volumes:
networks:
configs

⛵小结

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

如果这篇【文章】有帮助到你,希望可以给【 Bug 终结者】点个赞👍,创作不易,如果有对【 后端技术】、【 前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【 Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Java Linux C语言
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
362 90
|
1月前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
300 79
|
3月前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
3月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
3月前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
3月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
173 2
|
3月前
|
存储 Linux Docker
docker在欧拉服务器上编译安装应该注意什么?如何操作?
【10月更文挑战第31天】docker在欧拉服务器上编译安装应该注意什么?如何操作?
126 2
|
3月前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
77 3
|
4月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
915 3
|
4月前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
340 1