windows下docker环境搭建与运行实战

背景

学习docker使用,需要环境,今天主要的目标是在windows环境下安装docker环境。
为什么要这么搞,主要是企业内部服务器,都是跟公网隔离的,没有访问公网权限,所以镜像什么的,从公网拉取完全没戏,在测试验证环节,通过公网下载各种镜像再传到服务器这种模式,效率低下。
以前做过这样的尝试,详见https://blog.csdn.net/seawaving/article/details/123529906,最后的效果并不好,只能执行有限的docker命令,因无法访问公网,从而也无法方便地从公网拉取各种镜像。

而个人办公电脑安装的操作系统都是windows,虽然可以再装个vmware,安装linux操作系统,然后再在上面搞docker环境,理论上可行,一方面,vmware是需要商业授权的,不能随便装;另一方面,会占用较大的系统资源。

既然官方提供了windows安装程序,那么就在windows环境下做吧,网上搜索到的资料大多是基于linux环境的,window下如何安装配置非常少,自行整理分享出来,让后来人少走弯路。

下载

官网下载地址https://docs.docker.com/desktop/install/windows-install/
根据自己的操作系统选择合适的安装包,我使用的win10安装包地址https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
没找到国内镜像,下载速度很慢,最终使用的迅雷会员才搞定。

环境需求

虚拟化有两种模式,一是基于Hyper-V,二是基于WSL2。后者是新技术,作为前者的替代。但是我采用后者模式,docker桌面报错,然后翻了大量资料去尝试修复无果,干脆卸载后重新选择的Hyper-V模式,顺利运行。

采用Hyper-V模式,需要把windows系统默认未开启或安装的功能打开,如下图两处红框,该操作需要先于容器桌面安装执行。
image.png

安装

双击运行即可,没什么可说的。

登录

启动后会提示登录,我原来的账号密码忘记了,选了忘记密码,126邮箱收不到邮件。点击重新注册,页面无法打开,最终放弃。实际发现好像不登录也没啥影响,镜像、容器等功能都能使用,所以该步应该能是非必须,可跳过。

基本验证

需要注意的是,拉取镜像并不是在容器桌面上,而是直接在操作系统的PowerShell中打开并执行。例如,以下是拉取hello-world镜像来验证

docker run hello-world

image.png
可以看到执行过程是先在本地查找是否存在镜像,如不存在,则去远程拉取。

更改国内镜像

上面这个镜像个头很小,实际用到的镜像可能很大,比如nacos,得800M+,从默认的国外服务器拉取,那下载速度和稳定性得疯掉,因此需要更改为国内镜像地址,这块没查到具体资料,自行摸索结果是修改如下配置文件:
路径:C:\Program Files\Docker\Docker\resources\windows-daemon-options.json

“registry-mirrors”: [“registry|redacted”],
修改为
“registry-mirrors”: [“https://registry.docker-cn.com”,“registry|redacted”]
这里我只加了一个镜像源,完全可以用同样的方式添加多个国内镜像源,如下:

 "registry-mirrors": ["https://registry.docker-cn.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","registry|redacted"],

查看和管理容器

容器桌面则可以查看和管理容器实例,如下图所示:
image.png

查看和管理镜像

如下图所示:
image.png
通过名称链接点进去,可以方便地看到镜像分层和包
image.png

通过镜像创建容器

如下图所示,进入镜像列表,点击对应的按钮,弹出框中,可以设置容器的名字、指定端口、挂载卷和环境变量,一定程度上替代命令行的方式,其本质还是调用了docker的api,只是进行了图形化封装而已。
image.png
需要注意的是,这里的端口映射不能自由添加,在docker构建过程中使用expose命令暴漏了几个端口,就会自动显示几行。

查看和管理数据卷

image.png
需要注意的是,这里点右上角的添加,只会创建一个名字,并不能设置卷的本地位置和映射位置
image.png
通过docker run命令挂载的卷,或在容器桌面通过镜像创建容器的可视化界面挂载的卷会自动在此处显示
image.png

查看容器日志

在容器列表中通过名称连接点进去,可以方便地查看控制台输出日志
image.png

进入控制台

需注意的是进入的sh,不是bash,部分指令有差异,如ls可用,而ll不可用。
image.png

查看容器内目录与文件

image.png选中某个文件,可以进一步编辑、删除、下载或导入。

查看容器资源监控

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

056-第三代软件开发-软件打包

第三代软件开发-软件打包 文章目录 第三代软件开发-软件打包项目介绍软件打包1 下载 linuxdepoyqt 工具2 安装 linuxdepoyqt3 qmake配置4 打包程序 总结 关键字: Qt、 Qml、 linuxdeployqt、 Ubuntu、 AppImage 项目介绍 欢迎来到我们的 QML & C 项目&…

如果客户端同时有ipv4和ipv6,浏览器是如何选择用哪种ip

在互联网协议(IP)的发展历程中,IPv4和IPv6是两种主要的版本。对于一个客户端来说,同时拥有IPv4和IPv6的能力是常见的情况。那么,当一个客户端同时具有IPv4和IPv6的能力时,浏览器是如何选择使用哪种IP进行通…

pygame加载图像,并让小球做平抛运动

文章目录 load转换和存储自由落体 在游戏设计中,图像显示是必不可少的功能,pygame中的image模块便用于加载图像。 load 通过load函数,可以加载多种图像格式,如下表所示 旧版本bmp, gpeg, png, pcx, tiff, xpmc, lbm(以及pbm, p…

下载网页内容成HTML文件

今天遇到了一个非常好用的、开源的网页下载插件: SingleFile,它可以将当前网页里的文字、图片、超链接等,合并成单一的.html文件,便于保存和浏览查看。下面介绍SingleFile的安装和使用。 1、下载SingleFile插件 SingleFile官网地址&#xff…

【计算机网络笔记】多路访问控制(MAC)协议——轮转访问MAC协议

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

31 - MySQL调优之SQL语句:如何写出高性能SQL语句?

从今天开始,我将带你一起学习 MySQL 的性能调优。MySQL 数据库是互联网公司使用最为频繁的数据库之一,不仅仅因为它开源免费,MySQL 卓越的性能、稳定的服务以及活跃的社区都成就了它的核心竞争力。 我们知道,应用服务与数据库的交…

一文从Vue2过渡到Vue3

文章目录 Vue3简介创建Vue3.0工程使用 vue-cli 创建使用 vite 创建Vue3工程结构变化 常用 Composition API拉开序幕的setupref函数reactive函数Vue3.0中的响应式原理vue2.x的响应式Vue3.0的响应式 reactive对比refsetup的两个注意点计算属性与监视computed函数watch函数watchEf…

Java游戏之王者荣耀

首先创建类: 游戏运行结果如下: GameFrame类 所需图片: GameObject类 Turret类 所需图片: TurretBlue类 TurretRed类 Champion类 所需图片: 单个: move包: ChampionDaji类 所需图片: Minio…

Vue框架学习笔记——计算属性

文章目录 前文提要代码需求描述插值语法实现methods实现 计算属性getter执行时间:setter 计算属性简写形式(只读不改,才能如此简写)slice截取元素,限制输入字符数量 前文提要 本人仅做个人学习记录,如有错…

62 权限提升-烂土豆dll劫持引号路径服务权限

目录 演示案例:Win2012-烂士豆配合令牌窃取提权-Web权限Win2012-DLL劫持提权应用配合MSF-Web权限Win2012-不安全的服务权限配合MSF-本地权限Win2012-不带引号服务路径配合MSF-Web,本地权限补充说明: dll劫持提权及AlwaysInstallElevated等说明关于Windows相关知识点…

【nginx】 实现限流

这里写自定义目录标题 前言正文nginx实现限流并发限制限制单IP并发数量限制单主机服务并发数量 速率限制限流效果 注意疑问参考链接 小结 前言 好久不见,还算为时不晚。最近一个月经历了工作的调整,技术栈从Java转向了Go和Python, 工作显得更忙了些&…

B树与B+树的对比

B树: m阶B树的核心特性: 树中每个节点至多有m棵子树,即至多含有m-1个关键字根节点的子树数属于[2, m],关键字数属于[1, m-1],其他节点的子树数属于 [ ⌈ m 2 ⌉ , m ] [\lceil \frac{m}{2}\rceil, m] [⌈2m​⌉,m]&am…