Windows安装Docker运行中间件(详细)

这篇具有很好参考价值的文章主要介绍了Windows安装Docker运行中间件(详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Docker

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

1.1、概念

Docker容器是一个轻量级的沙箱环境,每个容器都运行一个独立的进程,Docker利用容器来运行和隔离应用。

  • 容器是从Docker镜像创建的运行实例。
  • Docker镜像是一个只读的模板,它包含了创建Docker容器的必要信息,包括操作系统、应用程序等。

镜像是用于创建容器的模板,可以基于另一个镜像进行构建,也可以通过Dockerfile文件进行构建。
每个Docker镜像可以基于多个文件系统层,每个文件系统层都是一个镜像的一部分,每个文件系统都包含一个应用程序的某一组件或依赖包。每个文件系统中的文件都是只读的,如果需要对文件进行修改、添加或删除操作,需要重新生成一个新的Docker镜像。

1.2、基本命令

(1)查看镜像

docker search 镜像名称

(2)拉取镜像

docker pull 镜像名称

(3)查看镜像详情

docker inspect 镜像名称或镜像ID

(4)删除镜像

docker rmi 镜像名称或镜像ID

(5)生成容器

docker run -d --name 容器名称 -p 外部端口:内部端口 -v 外部文件路径:内部文件路径 -e 环境名称=环境值 镜像名称或镜像ID
  • -i(或 --interactive)保持标准输入(stdin)打开,这使得你可以与容器进行交互。通常,当你运行一个容器并希望与它进行交互时,你会使用这个标志。
  • -t(或 --tty)为容器分配一个伪终端(pseudo-TTY),这使得容器的输出更像一个常规的终端,而不是纯文本。这常常与-i一起使用,因为这样可以让容器启动后进入交互模式,而容器内部的shell知道它正在与一个真实的用户交互。
  • -d,它是用来在后台运行容器的。当你使用 -d 运行容器时,容器会在后台运行,并且不会分配伪终端或保持标准输入打开。

(6)进入容器

docker exec -it 容器名称或容器ID /bin/bash

/bin/bash 是 Bash shell 的路径。Bash 是一个流行的 shell,用于命令行界面与操作系统交互。

(7)查看容器

docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器,运行和未运行的都显示出来

(8)停止/启动容器

docker stop 容器ID # 停止容器
docker start 容器ID # 启动容器

(9)删除容器
删除容器时尽可能保持容器已经停止了。

docker rm 容器ID

2、Windows配置Docker

在常见的日常开发中,Docker都是配置在Linux环境中的,而且在公司的环境中,基本上也是使用的Linux。
作为个人开发者,如果使用的是Linux也还好说,但是我们基本上使用的都是windows,如果想要使用linux,要么改系统,要么申请服务器。

第一种在国内基本上不太可能,第二种对于有钱的个人开发者还是可以实现的,但是对于我这种穷的开发者来说,就无法支付每个月几十块的费用了。
当然啦,Docker官方也考虑到了这一点,故此也研究出了windows版本的Docker。

2.1、安装WSL

Windows Subsystem for Linux(简称WSL)是一个在Windows 10/11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码),来自Ubuntu的用户模式二进制文件在其上运行。使用Windows 10 2004以上版本,可以通过WSL 2来窗口化运行桌面应用,也不需要另外安装其他的X服务器。

(1)更新WSL

wsl --update

(2)安装WSL

wsl --install

(3)关闭所有虚拟引擎

wsl --shutdown

(4)显示以安装的虚拟机的基本信息

wsl -l -v

2.2、开启虚拟化

CMD命令窗口中输入
打开Windows电脑的设置,选择程序中的程序和功能选项,找到启动或关闭windows功能
勾选适用于Linux的Windows子系统虚拟机平台两个选项。
Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud
点击了确定之后在文件管理器中就能看见Linux系统的图标了。
Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud

2.3、安装Docker

可以在Docker官网上直接下载Windows版本的Docker安装包。
Docker桌面端下载:https://docker.p2hp.com/products/docker-desktop/index.html

2.3.1、安装

Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud
下载后直接安装便可以了。

但是需要注意:
Docker的一系列文件都是非常大的,并且默认的安装位置在C盘中,目录是:C:\Program Files\Docker。
在日常的开发中,镜像的下载和容器的配置,都是非常占内存的,所以我们需要把一系列的文件给移除来放到其他磁盘中。

  • C 盘下的Docker目录在我电脑上移除后会导致Docker无法运行,所以这里我没有移除这个目录,这个目录在我电脑的C盘上占用3G的内存。
  • 所以我移动的是Docker的镜像和容器的目录,Docker主要还是要移除这两个目录,docker-desktopdocker-desktop-data,并且占内存的也主要是这两个目录。

2.3.2、移动目录

移动目录的前提是:需要移动目录的虚拟环境一定是Stopper的。我们可以通过wsl -l -v查看虚拟设备的状态。

Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud

2.3.2.1、导出文件:

语法:wsl --export 虚拟文件名称 导出文件位置

wsl --export docker-desktop D:\docker\docker-desktop.tar
wsl --export docker-desktop-data D:\docker\docker-desktop-data.tar

那为啥是tar文件嘞?

  1. 归档文件格式:Docker镜像是以一组文件和目录的形式存在的,而tar是一种常见的归档文件格式,可以将多个文件和目录打包成一个单独的文件。这样可以将整个镜像的内容打包成一个tar文件,便于传输和保存。
  2. 跨平台兼容性:Docker的设计目标是实现跨平台的容器化运行,而tar文件格式是一种标准化的文件打包格式,可以在不同的操作系统上使用。使用tar文件作为Docker镜像的导出格式,可以确保镜像在不同平台上的一致性和可移植性。
  3. 加载速度快:对于Docker守护进程来说,加载一个tar文件比直接加载整个镜像要快得多。因为tar文件只包含文件和目录的元数据,而不包含实际的文件内容,所以加载过程中需要读取的文件数量较少,加载速度更快。
  4. 便于版本管理:使用tar文件作为Docker镜像的导出格式,可以方便地实现版本管理。每次导出时都会生成一个新的tar文件,可以方便地对比不同版本的镜像差异。
2.3.2.2、导入文件

在导入文件前,需要将原来的文件从管理器中删除,也就是注销,删没删除可以在文件管理器中看到:
Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud
途中显示的就是存在的。

(1)删除环境:

wsl --unregister 虚拟环境名称

查看虚拟环境可以使用:wsl -l -v命令查看。

(2)导入环境文件
语法:wsl --import 自定义环境名称 工作区 tar文件路径

wsl --import docker-desktop D:\docker\docker-desktop D:\docker\docker-desktop.tar
wsl --import docker-desktop-data D:\docker\docker-desktop-data D:\docker\docker-desktop-data.tar

2.3.3、重新启动Docker

配置好上面的环境后,重新启动Docker桌面端工具。
Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud
只要桌面端工具的左下角绿了,就证明启动成功了。
上图中的容器和镜像是我提前下好和运行了的,所以会有记录。

3、运行中间件

好处:

  1. 简化配置和部署:Docker可以简化中间件的配置和部署过程。通过Docker,中间件的依赖项、配置文件和日志目录都可以被打包到一个统一的镜像中,这样可以一次性构建和部署,而不需要在每个服务器上单独配置。
  2. 提高资源利用率:Docker的容器化技术可以将多个中间件实例运行在同一个服务器上,提高了服务器的资源利用率,降低了服务器的数量和成本。
  3. 隔离性:Docker为每个中间件实例提供了隔离的环境,使得不同的中间件实例之间互不干扰,保证了中间件的高可用性和稳定性。
  4. 快速扩展:使用Docker可以快速地扩展中间件服务的规模,只需要在需要的时候增加Docker容器的数量即可。这种动态的扩展能力使得Docker非常适合于处理突发的高峰流量。

3.1、运行redis

3.1.1、查看目前docker支持的redis版本:

docker search redis

Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud
OFFICIAL是Docker官方打包的程序。

3.1.2、拉取Redis

docker pull redis

如果不给版本,拉取的就是最新版的redis。

3.1.3、查看镜像

docker images

Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud

3.1.4、生成容器

在使用中间件时,一般内部都会有一些文件需要挂载到Windows本地目录,而不是在内部目录,只有挂载出来才方便我们看到。
docker提供了-v的方式挂载目录。

在windows版本的docker配置redis中,需要手动在本地的conf文件下添加一个redis.conf文件,这个文件可以通过Redis官网下载指定版本的redis得到。

docker run -d --name redis 
-p 6379:6379 
-v E:/virtual/redis/conf.redis.conf:/etc/redis/redis.conf 
-v E:/virtual/redis/data:/data 
e40e2763392d # 容器名称

这里为了方便观看进行了换行,复制时需要删除换行。

3.2、运行nacos

3.2.1、查看版本

docker search nacos

Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud
当没有官方提供的时候,我们就可以选择一个下载人数多的且OK的。

3.2.2、拉取并查看镜像

docker pull nacos/nacos-server
docker ps

3.2.3、持久化配置

目前使用最多的nacos持久化配置就是持久化到数据库。
所以我们就需要提前修改application.properties文件,让nacos能连接数据库。

  1. 在指定位置创建好conf、logs、data三个目录用于挂载。
  2. 去nacos官网下载指定版本的nacos,并将conf下的所有文件复制到挂载目录的conf文件下。

(1)数据库配置

数据库我用的是windows本地的,而不是在Docker中使用MySQL镜像。而Docker是个独立的环境,Windows和Docker下的localhost或者127.0.0.1表示的都是各自内部的环境,不能看出一个环境。
所以,如果使用Docker访问Windows中的数据库,则需要在数据库中创建一个新的用户或者把root用户的连接地址从localhost改为%,这样就表示所有地址都可以连接了。

方式一:修改root用户

use mysql;
UPDATE user SET host = '%' WHERE user = 'root';

方式二:新建用户

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

然后将权限修改为与root用户相同就行了。
Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud
无论是方式一还是方式二,都需要配置完成后重新启动MySQL服务。

(2)nacos配置文件配置

配置application.properties文件中的数据库连接信息:

spring.datasource.platform=mysql
spring.sql.init.platform=mysql
db.num=1
db.url=jdbc:mysql://192.168.1.246:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=slave
db.password=123456

MySQL的URL连接地址一定要写Windows的IP地址,但是不要写成WSL的IP地址了。

3.2.4、生成容器

在nacos到2.0之后,就需要隐射三个端口:884898489849

docker run -d --name nacos 
-p 8848:8848 
-p 9848:9848 
-p 9849:9849 
-e MODE=standalone # 单机模式
-v E:/virtual/mount/nacos/conf:/home/nacos/conf 
-v E:/virtual/mount/nacos/logs:/home/nacos/logs 
-v E:/virtual/mount/nacos/data:/home/nacos/data 
c056b930e4dd #容器名称

这里为了方便观看进行了换行,复制时需要删除换行。

回车后可以通过:docker logs 容器名称来查看是否运行成功,但是可能需要等待一段时间,因为进行数据库连接需要时间,一定要确保Docker中的nacos能连接Windows中的数据库。

3.3、运行RabbitMQ

前面的步骤都是相同的,故此省略,直接生成镜像,唯一不同的就是不用提前建好映射文件。
需要提前修改配置的则需要提前建好conf等文件,将配置从官网获取,不需要提前配置的则不需要提前建立conf等文件。

docker run -d --name rabbitmq 
-p 5672:5672 
-p 15672:15672 
-e RABBITMQ_DEFAULT_USER=admin  # 登录时的账号
-e RABBITMQ_DEFAULT_PASS=admin  # 登录时的密码
-v E:/virtual/mount/rabbitmq/data:/var/lib/rabbitmq 
-v E:/virtual/mount/rabbitmq/conf:/etc/rabbitmq 
-v E:/virtual/mount/rabbitmq/logs:/var/log/rabbitmq 
457abe59adf7 # 容器名称

这里为了方便观看进行了换行,复制时需要删除换行。

因为没有提前建立挂载文件,所以当在命令中声明了后,就会在指定的目录下创建挂载文件。

3.4、查看

查看方式既可以通过CMD窗口查看也可以通过Docker桌面端查看:
方式一:CMD窗口

docker ps

Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud

方式二:Docker桌面端
Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud

4、总结

不得不说,使用Docker是真的爽。

首先,Docker彻底改变了应用部署的方式,使得应用更加容易地迁移和扩展。通过Docker,我们可以轻松地创建、部署和运行应用程序,而无需担心环境配置和依赖问题。

其次,Docker提高了开发效率。使用Docker,开发人员可以在隔离的环境中快速构建和测试应用程序,同时避免了对生产环境的干扰。此外,Docker还提供了强大的监控和日志记录功能,使得开发人员可以更好地了解应用程序的运行状态并进行调试。

最后,Docker具有灵活性和可扩展性。通过简单地增加或减少容器数量,我们可以轻松地扩展应用程序的规模,以满足业务需求。总之,使用Docker开发让我深刻感受到技术的力量和进步。它不仅简化了应用程序的部署和管理,还提高了开发效率和系统稳定性。在未来,我期待着Docker技术的进一步发展和普及,为更多的开发者和企业带来更多的便利和价值。

Windows安装Docker运行中间件(详细),分布式,docker,中间件,分布式,java,运维,容器,spring cloud文章来源地址https://www.toymoban.com/news/detail-808607.html

到了这里,关于Windows安装Docker运行中间件(详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 消息队列中间件 - Docker安装RabbitMQ、AMQP协议、和主要角色

    不管是微服务还是分布式的系统架构中,消息队列中间件都是不可缺少的一个重要环节,主流的消息队列中间件有RabbitMQ、RocketMQ等等,从这篇开始详细介绍以RabbitMQ为代表的消息队列中间件。 AMQP协议 AMQP协议是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与

    2024年02月03日
    浏览(57)
  • docker 安装 mysql、redis、rabbitmq、RocketMQ、Nacos 等中间件

    docker 用宝塔进行管理比较方便,如果想外部访问,一定要用宝塔在安全那里打开对应端口 使用 宝塔 直接安装即可 注意:mysql这样是没办法进行外部链接的还需要一步打开外部链接操作。 需要在进入 mysql 的bash之后进行操作:具体操作 通过简易版方式安装,主打的就是有问

    2024年01月21日
    浏览(55)
  • spring cloud 搭建消息中间件 RabbitMQ 环境、Mac/Windows下载安装RabbitMQ、配置RabbitMQ环境变量

    spring boot、spring cloud工程:Mac/Windows下载安装Erlang、RabbitMQ,并配置环境变量。 这里学习如何安装 RabbitMQ,因为远程配置中心的动态更新需要结合 RabbitMQ 来使用。 这里给出自己下载和使用的百度网盘链接:Erlang 版本为25.3.2、RabbitMQ版本为3.12.1 : 链接:百度网盘链接 提取码:

    2024年02月15日
    浏览(67)
  • 【中间件】docker数据卷

            📝个人主页: 五敷有你         🔥系列专栏: 中间件 ⛺️稳中求进,晒太阳 修改nginx的html页面时,需要进入nginx内部。并且因为内部没有编辑器,修改文件也很麻烦。 这就是因为容器与数据(容器内文件)耦合带来的后果。要解决这个问题,必须将数据与容

    2024年03月27日
    浏览(36)
  • 在windows上可视化redis中间件

    首先需要下载一下RedisDesktopManager这个可视化工具,在很多CSDN博客上都有博主进行介绍,其实就是一个傻瓜式安装。 windows下安装redis的话可以去B站上查看一下怎么安装,主要是在github上去下载,目前更新的比较快,不过很多视频都是装的5.x的版本,它也是一个傻瓜式的安装,

    2024年02月11日
    浏览(40)
  • Docker中安装常用的中间件全过程

     从Nacos2.0.0开始,需要多开放两个个 9848、9849 端口,以应对gRPC的通信方式,如果不开放绑定,那么客户端微服务无法注册到Nacos,会直接报错。Client not connected, current status:STARTING Nacos数据持久化 1、新建Nacos配置数据库,取名为nacos-config,并为该数据库设置允许远程访问权限

    2024年02月10日
    浏览(80)
  • 消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)

    本文此章主要介绍环境搭建。此次主要是单机搭建(条件有限),包括在Windows、Linux环境下的搭建,以及RabbitMQ的监控平台搭建。 在搭建RabbitMQ之前,请先确保如下环境已经搭建完毕 Java环境(我的JDK1.8) Maven环境(我的3.6.1目前最新版) Git环境 没有搭建的同学走传送门:

    2024年02月08日
    浏览(36)
  • kubesphere安装中间件

    目录 kubesphere安装mysql kubesphere安装redis  kubesphere安装elasticsearch kubesphere安装nacos 创建configMap   elasticsearch.yml  jvm.options  创建配置字典(涉及application.properties和cluster.conf) 项目--配置--配置字典(需要添加两个数据,分别是application.properties和cluster.conf) 在mysql中创建库nacos,并且导

    2024年02月16日
    浏览(38)
  • 中间件:RocketMQ安装部署

    下载 配置 broker.conf 的brokerIP1 为公网ip 启动命令: 查看集群状态 benchmark目录下

    2024年02月12日
    浏览(36)
  • 中间件: Kafka安装部署

    下载二进制包 修改配置 启动 按照单机部署方式启动多个Zookeeper与broker节点。 修改config/server.properties配置: broker.id 每个节点唯一 zookeeper.connect: 改成zookeeper节点 查看集群状态:

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包