windows下docker环境安装

开启硬件虚拟化技术

win10中开启 Hyper-V

Win10 下是否开启硬件虚拟化技术,在控制面板,启用 window 功能,找到 Hyper-V 选项,点勾选确认。如图:

Windows 11 家庭中文版新增 Hyper-V选项

注意以下的解决方案来自win10,我的win11家庭中文版只走了第一步,有可能是后续有更新

Windows 11 家庭中文版没有 Hyper-V这个选项。需要伪装成专业版系统,通过 Docker 的系统检测。

1.新建Hyper-V.cmd文件,并以管理员身份运行

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

2.新建containers.bat文件,并以管理员身份运行

 pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del containers.txt
Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
pause

3.修改注册表

注意中间会重启两次。

REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F

Hyper-V出现 

 

来源:

Docker Windows桌面版安装 Windows家庭版伪装成专业版系统_windows containers are not supported by your windo-CSDN博客

 

官网下载安装

https://www.docker.com/products/docker#/windows

报错解决

1.error during connect.....

在PowerShell中输入: docker images报错

error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/json: open //./pipe/docker_engine: The system cannot find the file specified.

输入:  cd "C:\Program Files\Docker\Docker"  ,进入安装路径 (注意双引号不能省略)

DockerCli.exe -SwitchDaemon

 

执行完  ./DockerCli.exe -SwitchDaemon 之后,会弹出

不用管,关掉,docker desktop也会同时关掉。

重新打开docker desktop,右键setting,还是转圈圈,需要等几分钟之后(不知道是不是我电脑的问题),会弹出设置存储库界面: First, clone a repository, 我都是next ,下一步下一步。完了之后setting界面就不转圈圈了:

来源:

https://www.cnblogs.com/ianlab/p/17130272.html 

2.Unexpected WSL error...

首先确保程序设置里,勾选了“Windows虚拟机监控程序平台”,以及“适用于Linux 的windows子系统“

打开管理员CMD,或者Windows Powershell,输入:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

重启WSL

netsh winsock reset


重启电脑
3、就可以成功启动docker了。(不用重装docker)
 

来源:Docker无法启动,报错:Docker Desktop - Unexpected WSL error-CSDN博客

3.Update the WSL kernel by running “wsl --update” ....

报错一 Update the WSL kernel by running “wsl --update” or follow instructions at https://docs.microsoft.com/windows/wsl/wsl2-kernel.

解决:管理员运行CMD,执行

 wsl --update 

来源:Windows安装 Docker Desktop报错解决大全-CSDN博客

4.家庭版则会造成系统版本冲突

报错提示1:
Docker | installation failed: one prerequisite is not fullfilled

报错提示2:
Windows containers are not supported by your windows version check documenta

Docker 支持 WIN10 的专业版,如果使用家庭版则会造成系统版本冲突了!

解决:安装上面Windows 11 家庭中文版新增 Hyper-V的执行步骤操作

5.Docker Desktop一直显示"starting the Docker Engine"

1.确定启动虚拟化

2.切换docker版本,有时候最新版本不一定适用当前电脑环境,需要不断尝试

我是在:https://docs.docker.com/desktop/release-notes/

 选择了v24.0.6这个版本才没有报错,可以正常使用了。中间不断尝试,需要卸载dockerDesktop,建议使用geek,geek会清理注册表,卸载更加干净。

来源:

解决在Windows11上新安装的Docker Desktop一直显示"starting the Docker Engine"登录不上去的问题 - 知乎

更改docker desktop中镜像存储路径

 c盘资源不够,需要更换存储路径到d盘。

1.退出当前运行的dock desktop

右击运行中的docker软件图标 选择[Quit Docker Desktop] 退出软件
cmd中运行

wsl --list -v

version版本为2是因为步骤5设置了版本号为2
查看状态,状态为Stopped这代表已经停止

2.停止虚拟机

立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机

wsl --shutdown

3.导出映像文件

Docker Desktop 通过WSL2启动,会自动创建2个子系统,分别对应2个 vhdx 硬盘映像文件[docker-desktop-data与docker-desktop]

分别导出这俩个文件
**需要提前创建好目录 (例:E:\Docker\wsl\distro和E:\Docker\wsl\data) **

mkdir d:\Docker\wsl\distro\

mkdir d:\Docker\wsl\data\

wsl --export docker-desktop d:\Docker\wsl\distro\docker-desktop.tar

wsl --export docker-desktop-data d:\Docker\wsl\data\docker-desktop-data.tar

4.注销原来的 Docker 镜像

销毁原来的docker镜像会删除源路径下的文件

wsl --unregister docker-desktop-data
wsl --unregister docker-desktop

5.从tar 文件,将导出的 Docker 镜像再导入回wsl,并设置挂载目录–v 为设置版本号 不设置默认为1

导入docker-desktop

wsl --import docker-desktop-data d:\Docker\wsl\data\  d:\Docker\wsl\data\docker-desktop-data.tar --version 2
 

wsl --import docker-desktop d:\Docker\wsl\distro\  d:\Docker\wsl\distro\docker-desktop.tar --version 2
 

6 重启docker完成

重启Docker Desktop即可。

导入完成确认镜像没问题后导出的.tar文件可以删除

测试

如果docker pull redis,D:\Docker这个文件扩大,说明移动成功。

但是测试发现,这个目录在,执行docker rmi以后,硬盘没有回收,待验证解决。

来源:

windows10,更改docker desktop中镜像存储路径_windows docker镜像位置-CSDN博客

常见组件安装

注意:以下都是测试,没有进行目录挂载

mysql安装

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

 如果要进行目录映射

docker run -p 3306:3306 --name mysql -v D:\WorkSpace\Workspace_docker\mysql57\conf:/etc/mysql -v D:\WorkSpace\Workspace_docker\mysql57\logs:/var/log/mysql -v D:\WorkSpace\Workspace_docker\mysql57\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

来源:windows系统使用Docker搭建MySQL服务_windows docker mysql-CSDN博客 

redis安装

docker run --name my-redis -d -p 6379:6379 redis

 客户端

docker exec -it my-redis redis-cli

来源:windows 安装docker redis_mob649e8168f1bb的技术博客_51CTO博客 

tomcat安装

docker run -d -p 8080:8080 --name t1 tomcat:latest

tomcat8

docker run -d -p 8080:8080 --name t8 billygoo/tomcat8-jdk8:latest
 

 来源:【Docker】如何用Docker安装Tomcat_docker 安装tomcat-CSDN博客

验证同一主机不通容器之间的的通信

docker network create mynetwork
docker run -d -p 8080:8080 --network=mynetwork --name t8 billygoo/tomcat8-jdk8:latest
docker run -d -p 8081:8080 --network=mynetwork --name t8_2 billygoo/tomcat8-jdk8:latest

docker exec -it t8 /bin/bash,进入t8容器内 ping t8_2,能够ping通,说明容器间可以通信

要创建一个Docker网络,你可以使用`docker network create`命令。下面是一些常见的用法:

1. 创建一个桥接网络:
```
docker network create mynetwork
```

2. 创建一个“host”网络,使容器与主机共享网络栈:
```
docker network create --driver=host mynetwork
```

3. 创建一个“overlay”网络,用于多主机间的容器通信:
```
docker network create --driver=overlay mynetwork
```

4. 创建一个“macvlan”网络,允许容器拥有自己的MAC地址:
```
docker network create --driver=macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 mynetwork
```

这里的`mynetwork`是网络的名称,你可以根据需要自定义。`--driver`参数用于指定网络驱动类型,常见的驱动类型有bridge、host、overlay和macvlan。其他参数根据驱动类型的不同而有所不同。

创建网络后,你可以在运行容器时使用`--network`参数将容器加入到该网络中。例如:
```
docker run --network=mynetwork myimage
```

注意,网络名称在容器之间必须是唯一的,因此请确保你为每个网络选择一个唯一的名称。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/238777.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

带你手把手 解读 firejail 沙盒源码(0.9.72版本)目录和组件 (一)

文章目录 关于firejail 的介绍src 目录每个文件夹(组件)的意义文件目录树 关于firejail 的介绍 Firejail 是一个用于 Linux 系统的安全工具,它通过创建轻量级的沙箱环境来运行应用程序。这种沙箱环境将应用程序与系统其余部分隔离&#xff0…

openEuler 20.03 (LTS-SP2) aarch64 cephadm 部署ceph18.2.0【5】 添加osd存储节点

接上篇 openEuler 20.03 (LTS-SP2) aarch64 cephadm 部署ceph18.2.0【1】离线部署 准备基础环境-CSDN博客 openEuler 20.03 (LTS-SP2) aarch64 cephadm 部署ceph18.2.0【2】离线部署 podman配置registries 部署registry私服 准备离线镜像-CSDN博客 openEuler 20.03 (LTS-SP2…

Python手撕kmeans源码

参考了两篇文章 K-Means及K-Means算法Python源码实现-CSDN博客 使用K-means算法进行聚类分析_kmeans聚类分析结果怎么看-CSDN博客 # 定义kmeans类 from copy import deepcopy from sklearn.datasets import make_blobs import numpy as np import matplotlib.pyplot as pltc…

如何充分准备面试,迅速融入团队并在工作中取得卓越成就

首先,关于如何筹备面试,首先需要对所申请公司与职位进行深入的调查了解,并依据可能提出的面试问题预先准备相应的答案,并提前调试面试所需的仪器设备。同时,也要注重自身形象的塑造。更为关键的是 1. 在计算机领域的面…

redis-学习笔记(Jedis)

自定义的 Redis 客户端 咱们可以实现编写出一个自定义的 Redis 客户端 因为 Redis 公开了自己使用的自定义协议 ---- RESP 协议清楚了, 那么通信数据格式就清除了, 就能完成各层次之间的数据传输, 就能开发服务器和客户端 RESP — Redis 的 序列化 协议 特点: 简单好实现快读进…

ETLCloud的应用策略——实时数据处理是关键

一、ETLCloud是什么? ETLCloud又称数据集成(DataOps),是RestCloud旗下的一款数据仓库管理工具,通过自动化数据转换和集成来实现企业内部和外部数据的无缝对接,从而帮助企业快速获取准确的数据信息&#xff…

活动预告 | 微盟技术沙龙 - Elasticsearch 在微盟的实践 12/21/2023

微盟技术沙龙 「微盟技术沙龙」是由微盟研发中心发起并联合各方小伙伴为开发者举办的系列技术沙龙,从用户,产品,技术等方面与开发者进行交流。 微盟技术沙龙关注开发者在实际应用中遇到的问题。提供最真实的干货,以技术会友&…

【SpringBoot】从入门到精通的快速开发指南

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《SpringBoot》。🎯🎯 &…

[MySQL]SQL优化之sql语句优化

🌈键盘敲烂,年薪30万🌈 目录 一、索引优化 回顾: 📕索引分类: 📕索引失效: 📕设计原则: 📕SQL性能分析 二、SQL优化 语句优化 &#x1f4d…

Gorm 的关联查询

背景介绍 gorm 与 mybatis-plus 、hibernate 等 ORM 框架一样,为了应对查询场景居多的现象,支持原生 sql 和 api 两种方式读数据库。 gorm 原生 sql 参见:https://gorm.io/docs/sql_builder.html。 gorm 提供的 api 支持关联插入、关联查询…

Jmeter入门

一、下载jmeter 官网下载 下载之后解压,在目录/bin下面找到jmeter.bat双击之后即可启动Jmeter。 二、使用 如下左图,选择语言为中文,可以修改测试计划的名称。如下右图,添加线程组 添加线程组 添加http请求 路径传参方式 …

Linux——MySQL数据库系统

一、 MySQL的编译安装 1、准备工作 (1)为了避免发生端口冲突,程序冲突等现象,建议先查询MySQL软件的安装情况,确认没有使用以Rpm方式安装的mysql-server、mysql软件包,否则建议将其卸载 [rootlocalhost ~]…

mars3d加载arcgis发布的服务,⽀持4523坐标

问题 1.从这个服务地址加载,具体在哪⾥去转坐标呢? 加个 usePreCachedTilesIfAvailable:false 参数即可 坐标系为4490的arcgis影像服务图层,配置后瓦片加载不出来,没报错 甚至可以跳转 没有看出问题,或者测…

RK3568驱动指南|第八篇 设备树插件-第75章ConfigFS的核心数据结构

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

神由之星加入元宇宙产业委员会共谋数字发展新篇章

近年来,元宇宙产业呈现出飞速发展的趋势,成为全球范围内备受瞩目的新兴行业。在这个充满机遇与挑战的时代,常州神由之星数字信息产业发展有限公司凭借敏锐的洞察力和卓越的数字产品,迅速抓住元宇宙的发展势头,大力发展元宇宙业务,成为该领域内一颗冉冉升起的新星。 神由之星荣膺…

数据分享 I 全国市级商品房屋销售数据,shp/excel格式,2005-2020年数据

基本信息. 数据名称: 全国市级商品房屋销售数据 数据格式: Shp、excel 数据时间: 2005-2020年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1spxse商品房销售额(亿元&#xf…

优思学院|如何建立公司运营指标体系?如何推行六西格玛改进运营指标?

关键绩效指标 (KPI) 是测量您团队或组织朝重要商业目标进展表现如何的量化指标,组织会在多个层面使用 KPI,这视乎您想要追踪何指标而定,您可以设定全组织的、特定团队的、或甚至是个人 KPI。 良好的KPI能让公司管理者掌握组织的营运是否进度…

在设计和考虑建造室外雨水收集池时需要注意的因素

在设计和建造室外雨水收集池时,需要考虑以下因素: 地质条件:建造雨水收集池需要考虑到地质条件,例如土壤类型、地基承载能力等。这些因素可能对水池的建造和结构产生影响。 气候条件:不同地区的降雨量、湿度、气温等…

Spring基于xml半注解开发

目录 Component的使用 依赖注解的使用 非自定义Bean的注解开发 Component的使用 基本Bean注解&#xff0c;主要是使用注解的方式替代原有的xml的<bean>标签及其标签属性的配置&#xff0c;使用Component注解替代<bean>标签中的id以及class属性&#xff0c;而对…

node.js express mongoose用户建模、权限校验

目录 userModel.js 依赖引入 数据建模 中间件 模型方法 创建user model并导出 catchAsync.js authController.js 依赖引入 token生成 注册 登录 密码修改 userRoutes.js 路由设计 protect中间件 角色中间件 app.js userModel.js 依赖引入 const mongoose …