精仿腾讯3366小游戏门户网站源码织梦最新内核带全部数据!,沈阳哪个男科医院好,网站后台如何添加附件,做智能网站软件下载文章目录 一、 Docker介绍二、Docker常用命令三、Docker 部署微服务项目四、Docker 使用场景五、Docker模拟场景5.1 模拟部署Nacos5.2 模拟部署Mongodb5.3 模拟部署RabbitMQ 一、 Docker介绍
Docker是一种开源软件平台#xff0c;用于在不同的操作系统#xff08;如Windows、… 文章目录 一、 Docker介绍二、Docker常用命令三、Docker 部署微服务项目四、Docker 使用场景五、Docker模拟场景5.1 模拟部署Nacos5.2 模拟部署Mongodb5.3 模拟部署RabbitMQ 一、 Docker介绍
Docker是一种开源软件平台用于在不同的操作系统如Windows、Linux等之间隔离应用程序以便更有效和可靠地管理这些应用程序的部署和运行。 Docker平台由三个基本概念组成 镜像Image镜像是 Docker 包含应用所需的一切的文件系统和配置的静态表示。镜像是一个只读的模板可以用来创建 Docker 容器。 容器Container容器是镜像的运行时实例。容器包含了一个应用程序及其依赖项并且可以在任何 Docker 主机上运行。 仓库Repository仓库是存放镜像的地方类似于代码仓库。Docker Hub是一个公共的仓库用户可以从中获取各种镜像。
Docker平台的优势包括 快速部署Docker平台可以快速创建和部署应用程序无需很长时间的安装和配置过程。 可靠性Docker的容器隔离使应用程序更加可靠因为它可以避免依赖项冲突和环境变化。 可移植性由于 Docker 平台在各种操作系统上都能运行因此应用程序可以更轻松地在不同的环境中迁移。
在应用程序开发中Docker 可以在以下方面提供帮助 开发环境一致性开发人员可以使用 Docker 镜像构建开发环境以确保团队成员之间具有一致的开发环境。 持续集成和部署Docker 使得在 CI/CD 环境中更容易进行自动化部署和升级操作帮助开发人员更加频繁地发布和测试新版本。 开发和生产环境一致性使用 Docker 平台可以确保在开发和生产环境中使用完全相同的应用程序和配置从而减少可能会导致生产环境故障的变量。
二、Docker常用命令
docker run运行一个容器docker ps列出所有正在运行的容器docker images列出所有镜像docker stop停止一个或多个容器docker rm删除一个或多个容器docker rmi删除一个或多个镜像docker build构建一个新的镜像docker exec在正在运行的容器中执行命令docker inspect查看容器或镜像的详细信息docker logs查看容器的日志信息docker pull下载一个镜像docker push将本地的镜像推送到远程仓库docker-compose使用docker-compose命令编排容器docker network管理Docker网络docker volume管理Docker卷
三、Docker 部署微服务项目
Docker 部署微服务项目需要以下步骤
准备 Docker 镜像
首先需要将微服务应用程序打包成 Docker 镜像。可以使用 Dockerfile 文件定义 Docker 镜像的构建过程然后使用命令 docker build 构建镜像。
部署 Docker 镜像
在 Docker 主机上部署 Docker 镜像可以使用 Docker compose 工具来定义和管理多个 Docker 容器的生命周期。在 Docker Compose 文件中定义每个组件或微服务所需的镜像、环境变量、网络配置等。
配置 Docker 网络
微服务应用程序在 Docker 中运行时需要使用 Docker 网络来实现相互通信。可以创建自定义 Docker 网络来提供服务发现和负载均衡等功能。
监控和管理
使用 Docker 容器和镜像管理工具如 Docker SwarmKubernetes 等来监控、管理、升级和扩展微服务应用程序。
总体来说Docker 可以帮助简化微服务应用程序的部署、升级和扩展过程提高应用程序的可靠性和可维护性。
四、Docker 使用场景 快速开发环境搭建Docker 可以快速构建适合于不同语言、不同框架的开发环境避免本地环境的差异性。 应用的打包和发布将应用程序和其依赖项打包到一个 Docker 镜像中然后在各种环境中进行部署包括本地环境、云环境或者其他服务器。 微服务架构Docker 可以在其容器中高效地运行各种服务包括数据库、缓存、消息队列等让整个架构变得更加模块化和可维护。 持续集成和持续部署Docker 可以与 CI/CD 工具一起使用提高应用程序的交付速度和质量。 多租户环境Docker 可以在一个主机上运行多个容器每个容器隔离运行可以实现多租户的环境。
五、Docker模拟场景
5.1 模拟部署Nacos
Nacos是一个开源的易于构建易于使用的动态服务发现配置管理和服务管理平台。Nacos使用了一系列的技术来实现它的功能其中包括Spring Cloud ConfigEurekaDubbo等。
在Docker中我们可以使用Nacos来模拟部署下面是具体的步骤
安装Docker和Docker Compose
在使用Docker模拟部署Nacos之前我们需要先安装Docker和Docker Compose。
下载Nacos的Docker镜像
使用以下命令从Docker Hub下载Nacos的Docker镜像
docker pull nacos/nacos-server创建Docker Compose文件
创建一个docker-compose.yaml文件将以下内容复制到文件中。
version: 3.1
services:nacos:image: nacos/nacos-servercontainer_name: nacosports:- 8848:8848environment:- PREFER_HOST_MODEhostnamevolumes:- ./data:/home/nacos/data- ./logs:/home/nacos/logs- ./init.d:/home/nacos/init.d其中我们将Nacos映射到端口号为8848并将数据和日志保存在本地的data和logs目录中。
启动Nacos
使用以下命令启动Nacos
docker-compose up -d访问Nacos
访问http://localhost:8848/nacos/即可进入Nacos的控制台。
至此我们已经成功地使用Docker模拟部署了Nacos。可以在控制台中进行服务的注册和发现等操作。
5.2 模拟部署Mongodb
要使用 Docker 模拟部署 Mongodb可以按照以下步骤操作 安装 Docker在您的计算机上安装 Docker。 下载 Mongodb 镜像使用以下命令从 Docker Hub 下载最新的 Mongodb 镜像。
docker pull mongo运行 Mongodb 容器使用以下命令运行 Mongodb 容器。
docker run -d -p 27017:27017 --name mymongodb mongo注-d 选项用于在后台运行容器-p 选项将容器端口映射到主机端口–name 选项为容器命名。
测试 Mongodb 容器使用以下命令测试 Mongodb 容器是否正在运行。
docker ps如果一切正常您应该能够看到正在运行的容器。
连接 Mongodb 容器使用以下命令连接到 Mongodb 容器。
docker exec -it mymongodb bash运行 Mongodb shell使用以下命令运行 Mongodb shell。
mongo现在您可以在 Mongodb shell 中使用所有 Mongodb 命令来管理数据库。
退出 Mongodb shell使用以下命令退出 Mongodb shell。
exit停止 Mongodb 容器使用以下命令停止 Mongodb 容器。
docker stop mymongodb现在您已经成功地使用 Docker 模拟部署了 Mongodb。
5.3 模拟部署RabbitMQ
在Docker中模拟部署RabbitMQ可以分为以下步骤
下载RabbitMQ镜像
docker pull rabbitmq:management运行RabbitMQ容器
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management访问RabbitMQ的web管理页面 在浏览器中输入 http://localhost:15672 访问RabbitMQ的web管理页面默认用户名和密码为 guest/guest。 配置RabbitMQ 我们可以在web管理页面中配置RabbitMQ例如创建队列、交换机、绑定等等。 连接RabbitMQ 我们可以使用客户端代码连接RabbitMQ例如使用Python的pika库连接RabbitMQ并发送和接收消息。
参考代码如下
import pika# 连接RabbitMQ
connection pika.BlockingConnection(pika.ConnectionParameters(localhost))
channel connection.channel()# 创建队列
channel.queue_declare(queuehello)# 发送消息
channel.basic_publish(exchange,routing_keyhello,bodyHello World!)
print( [x] Sent Hello World!)# 定义回调函数
def callback(ch, method, properties, body):print( [x] Received %r % body)# 接收消息
channel.basic_consume(queuehello,on_message_callbackcallback,auto_ackTrue)print( [*] Waiting for messages. To exit press CTRLC)
channel.start_consuming()以上就是在Docker中模拟部署RabbitMQ的步骤。
盈若安好便是晴天