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.mzph.cn/news/172891.shtml

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

相关文章

卷积神经网络(Inception-ResNet-v2)交通标志识别

文章目录 一、前言二、前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)2. 导入数据3. 查看数据 二、构建一个tf.data.Dataset1.加载数据2. 配置数据集 三、构建Inception-ResNet-v2网络1.自己搭建2.官方模型 五、设置动态学习率六、训练模型七、模型评…

rust tokio select!宏详解

rust tokio select!宏详解 简介 本文介绍Tokio中select!的用法,重点是使用过程中可能遇到的问题,比如阻塞问题、优先级问题、cancel safe问题。在Tokio 中,select! 是一个宏,用于同时等待多个异步任务,并在其中任意一…

探索 Vue 中的 bus.$emit:实现组件通信的强大工具

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

运维高级--centos7源码安装Apache

安装必要的依赖项: sudo yum groupinstall "Development Tools" sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel这将安装编译和构建所需的基本工具,以及 Apache HTTP Server 所需的一些依赖项。 下载 Apache HTT…

Pycharm Available Packages显示Noting to show

使用Pycharm安装依赖包时Available packages 页面点击添加按钮后,没有任何包显示,并且无法搜索安装. 在各种网站查看到的方法如下: 1.网络问题,需要添加镜像源 点击Manage Repositories 添加一个可用的镜像源地址即可 2.打开了anaconda(那个绿色圈圈小图标),再点一下把它点…

如何在 Vim 中剪切、复制和粘贴

目录 前言 如何在 Vim 编辑器中复制文本 如何在 Vim 编辑器中剪切文本 如何在 Vim 编辑器中粘贴文本 如何通过选择文本来剪切和复制文本 通过选择文本复制 在 Vim 中选择文本来剪切文本 前言 在本篇 Vim 快速技巧中,你将学习到剪切和复制粘贴的相关知识。 剪…

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables pg_stat_all_tables视图中记录有analyze信息,比如何时做的analyze、表元组个数(活元组、死元组)等。重启后发现该视图中表的统计信息重置不见了,发生了什么? 1、p…

HarmonyOS开发者工具DevEco Studio-汉化

HarmonyOS DevEco Studio 简介 下载安装及汉化 打开开发者工具 安装语言包重启 然后设置页搜索“chinese”,选中中文语言包,点击后面的install; 或者 汉化按照IDEA的汉法风格,需要安装插件重启就可以汉化,步骤为&…

在云服务器上搭建个人版chatGPT及后端Spring Boot集成chat GPT

原创/朱季谦 本文分成两部分,包括【国内服务器上搭建chat GPT】和【后端Spring Boot集成chat GPT】。 无论是在【国内服务器上搭建chat GPT】和【后端Spring Boot集成chat GPT】,两个方式都需要魔法访问,否则是无法正常使用的,即…

Linux uname命令教程:如何打印linux操作系统名称和硬件的基本信息(附实例教程和注意事项)

Linux uname命令介绍 uname命令是一个在Linux中常用的命令行工具,用于打印有关操作系统名称和系统硬件的基本信息。uname这个名字来源于"UNIX name"。它最常用于确定处理器架构,系统主机名和系统上运行的内核版本。 Linux uname命令适用的Li…

基于SSM的企业订单跟踪管理系统(有报告)。Javaee项目

演示视频: 基于SSM的企业订单跟踪管理系统(有报告)。Javaee项目 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringM…

Python---函数的数据---拆包的应用案例(两个变量值互换,*args, **kwargs调用时传递参数用法)

案例: 使用至少3种方式交换两个变量的值 第一种方式:引入一个临时变量 c1 10 c2 2# 引入临时变量temp temp c2 c2 c1 c1 tempprint(c1, c2) 第二种方式:使用加法与减法运算交换两个变量的值(不需要引入临时变量&#xff09…

python--获取每张切片的不同PEF区间值的百分比

在全直径数字岩心中,如何获取每张切片的不同PEF区间值的百分比? import os import datetime from PIL import Image import numpy as np import csv import easygui as gclass Table(object):def __init__(self, table_data_path):self.table_data_path…

ClickHouse中的物化视图

技术主题 技术原理 物化视图(Materialized View)是一种预先计算并缓存结果的视图,存储在磁盘上自动更新,空间换时间的思路。物化视图是一种优化技术,本质上就是为了加速查询操作,降低系统负载&#xff0c…

5、Qt:项目中包含多个子项目(.pro)/子模块(.pri)

一、说明: 在进行项目开发过程中,会涉及子项目/子模块的问题 Qt中使用TEMPLATE subdirs添加多个子项目;子项目可以单独编译生成可执行文件(exe)或者动态链接库(dll)等,供其他模块…

C#学习-9课时

P11 IF判断(上) P11 IF判断(中 ) bool→true or false; 为:变量赋值 为:等于(判断) !为:≠ 优先级:大于 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin…

论文笔记——FasterNet

为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。 为了实现更快的网络,作者重新回顾了FLOPs的运算符,并证明了如此低的FLOPS主要是由…

路径规划之D*算法

系列文章目录 路径规划之Dijkstra算法 路径规划之Best-First Search算法 路径规划之A*算法 路径规划之D *算法 路径规划之D*算法 系列文章目录前言一、D*算法1.1 起源1.2 思想1.3 阶段1.4 个人理解1.5 应用 前言 之前说过A是目前应用最广泛的寻路算法,但是A算法存…

深度学习第2天:RNN循环神经网络

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 文章目录 介绍 记忆功能对比展现 任务描述 导入库 处理数据 前馈神经网络 循环神经网络 编译与训练模型 模型预测 可能的问题 梯度消失 梯…

【古诗生成AI实战】之一——实战项目总览

[1] 总览 【古诗生成AI实战】系列共五篇文章: 【古诗生成AI实战】之一——实战项目总览   【古诗生成AI实战】之二——项目架构设计   【古诗生成AI实战】之三——任务加载器与预处理器   【古诗生成AI实战】之四——模型包装器与模型的训练   【古诗生成AI…