如何在Windows系统上部署docker

上次在Windows系统上部署成功Ubuntu系统,这次准备在Windows上部署docker desktop应用

这个应用软件类似于虚拟机,可以在该应用软件上部署多个镜像容器。其最直观的表现就是可以借用Windows和Ubuntu终端来访问docker“模拟的系统”。

Docker简介

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

一个完整的Docker有以下几个部分组成:

  1. 1.

    DockerClient客户端

  2. 2.

    Docker Daemon守护进程

  3. 3.

    Docker Image镜像

  4. 4.

    DockerContainer容器 

Docker部署

Docker部署强烈参考Windows Docker 安装 | 菜鸟教程,在此十分感谢

Docker Desktop安装

0.0

官方下载链接

Docker: Accelerated Container Application Development

docker 推出了不同系统支持的版本,这里我们下载支持Windows的docker desktop。

0.1

注意管理员安装后,需要重启电脑(注意保存资料)

重启后,稍等片刻弹出如下,点击接受,纯个人使用免费

0.2

默认选择自动配置,点击finish

0.3

选择登录或不登录,我这里选择不登录

0.4

如实填写,点击continue

0.5

0.5.1

安装完成后,会在Windows桌面出现一个Docker Desktop小图标

0.5.2

注意!!!

点击Docker Desktop,打开发现持续很长时间,这是因为Docker Desktop有两个依赖没有安装上

Docker Desktop依赖部署

Hyper-V启用

Hyper-V是Windows系统默认自带的虚拟机,如果没有Hyper-V,需要检查自己的系统是否完整

这里提供两种安装方式

第一种,命令行方式

0.0

找到powershell,鼠标右键以管理员身份运行

//PowerShell一般在自己的系统用户名目录下,找到

C:\Users\自己的系统用户名目录下\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

0.1

直接使用管理员打开PowerShell,输入如下命令,该命令用来启动Hyper-V

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

 if(出现如下情况,表明没有启动Hyper-V,输入yes启动),需要重启,注意文件保存!!!

else if(出现如下情况,表明启动了Hyper-V,不需要任何操作,进行下一步)

第二种,窗口勾选方式

0.0

选择电脑桌面右下角,找到如下图标(或者是网络图标),在该图标上点击鼠标右键,打开网络和Internet设置

0.1

弹出如下窗口,点击网络和共享中心

0.2

弹出如下窗口,点击控制面板主页

0.3

弹出如下窗口,点击程序

0.3.1

注意!!!如果弹出的是如下两个窗口,点击查看方式,选中类别

 0.4

点击程序后,弹出如下窗口,点击启用或关闭Windows功能

0.5

弹出如下窗口,找到Hyper-V,左边的+全部展开,都勾选上,点击确定,弹出重启窗口,确定重启,重启后就会启用了。

WSL安装

安装WSL链接,强烈推荐参考,十分感谢

安装 WSL | Microsoft Learn

一、命令行安装

注意!!!默认安装Ubuntu的Windows子系统,如果需要安装其他子系统参考上方链接

0.0

右键管理员权限打开PowerShell,输入如下命令联网安装WSL,之后重启即可

wsl --install

二、手动安装

如果Windows系统更新被禁止或者系统不支持访问MicroSoft网络,或者Windows系统版本受支持过期等愿意,可以手动安装

旧版 WSL 的手动安装步骤 | Microsoft Learn

这里选择安装Ubuntu2204-221101.AppxBundle

0.0

右键安装或者鼠标双击安装

0.1

耐心等待安装完成即可

0.2

输入自定义用户名(除root和不要大写,root是根用户),然后按照提示输入密码,即安装上WSL

0.3

WSL安装成功后,Docker Desktop要想能用,还需要启用WSL,输入如下命令

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

//或者

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

//并设置默认WSL2。WSL有两个版本,WSL1和WSL2,注意!!!设置如下命令,WSL必须已经启动

 wsl --set-default-version 2

0.4

WSL安装之后,建议重启

Docker部署验证

检测Hyper-V状态

右键管理员权限打开PowerShell,输入如下命令

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V

 检测WSL状态

打开自的Ubuntu,方法:从,左下角的放大镜,输入Ubuntu,即可看到

检测docker状态

双击桌面Docker Desktop,出现如下页面,恭喜启动成功

Docker使用

获取Base镜像

Docker是容器,镜像则是工具,获取镜像纳入容器里头,Docker就活了。

(注意这里的镜像是兼容Docker的镜像,并不是iso等格式镜像)

镜像链接:https://hub.docker.com/

查看镜像

检测Docker容器内是否存在镜像,Win+R,在运行窗口输入cmd,打开Windows终端(cmd),输入如下命令

docker images

如果是这种,表明容器内是空的,没有镜像

REPOSITORY:镜像的仓库源

TAG:镜像的标签(同一个仓库源可以有不同的标签,可以代表不同的镜像版本)

IMAGE ID:镜像的ID

CREATED:镜像创建时间

SIZE:镜像大小

0.1

获取镜像有两种方法

0.1.0

如果本地有docker镜像包,直接输入如下命令将镜像推入容器内

docker load -i ./镜像包

0.1.1

我没有,所以我需要联网下载,这里我使用Ubuntu镜像

输入如下命令,会联网下载Ubuntu22.04版本的镜像(如果想下载最新版镜像,不写版本号,直接docekr pull ubuntu即可)

docker pull ubuntu:22.04

docker images //查看是否下载成功

创建Base镜像容器

输入如下命令,来运行Ubuntu22.04镜像,创建一个容器,并命名,使用exec来进入容器(exec进入容器后,使用exit退出容器后,容器不会终止而是在后台运行)

docekr run -itd --name my_ubuntu22.04 ubuntu:22.04

docekr exec -it my_ubuntu22.04 /bin/bash

-i是交互式操作

-t是运行终端

-d是在后台运行

--name表示给ubuntu镜像创建的容器起一个名字,这里我给新创建的容器起名为my_ubuntu22.04

ubuntu:22.04是ubuntu仓库源+版本号的结合体,用来指定为哪一个镜像创建一个容器

查看容器

docker ps -a

CONTAINER ID:容器的ID

IMAGE:创建容器的镜像(一般是仓库源+版本号组成)

COMMAND:运行容器指定要运行的命令终端工具

CREATED:容器被创建的时间

STATUS:容器的状态

PORTS:端口(一般涉及到Web)

NAMES:容器的名字(可以通过--name自定义容器名字)

启动Base镜像容器

启动Base镜像容器有两种

0.0

输入run命令,创建一个新的容器并直接启动和进入容器(run命令会在镜像的基础上创建一个新的容器),没有--name,会自动创建一个容器名字

docker run -it my_ubuntu22.04 /bin/bash

0.1

输入start命令,启动一个已有的容器,不会直接进入容器(如果想直接进入容器,使用docker start -i <容器ID/容器名字>)

docker start <容器ID/容器名字>

进入已启动的Base镜像容器

进入已经启动的容器,一般是因为-d(后台运行)或者start不带-i的缘故,需要进入容器有两种方式

0.0

使用attach命令(退出后,容器会终止)

0.1

使用exec命令(exec命令进入容器,exit后,容器并不会终止,而是在后台继续运行)

退出/停止Base镜像容器

退出容器,直接输入exit即可,停止容器,使用stop即可

重启Base镜像容器

使用restart命令重启容器

导出Base镜像容器

使用export命令导出Base镜像容器到本地

docker export my_ubuntu22.04 > E:\docker-images\Ubuntu22.04.tar

//注意文件夹命名不能带空格,否则导出失败

导入Base镜像容器

0.0

使用import命令导入镜像(会创建一个新的镜像,容器并没有增加)

0.1

使用load命令导入

docker load -i <容器>

//需要注意的是,load导入镜像需要Dockerfile文件,Dockerfile后续在接着讲解

删除

删除容器,使用rm命令

删除镜像,直接打开Docker Desktop应用界面, 点击垃圾桶删除即可

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

《合成孔径雷达成像算法与实现》Figure6.8

clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.2; % 距离过采样率 Nrg 320; % 距离线采样数 距离向…

Flink流式数据倾斜

1. 流式数据倾斜 流式处理的数据倾斜和 Spark 的离线或者微批处理都是某一个 SubTask 数据过多这种数据不均匀导致的&#xff0c;但是因为流式处理的特性其中又有些许不同 2. 如何解决 2.1 窗口有界流倾斜 窗口操作类似Spark的微批处理&#xff0c;直接两阶段聚合的方式来解决…

Maven之安装自定义jar到本地Maven仓库中

Maven之安装自定义jar到本地Maven仓库中 文章目录 Maven之安装自定义jar到本地Maven仓库中1. 命令行窗口安装方式1. 常用参数说明2. 安装实例 2. IDEA中安装方式3. 使用 1. 命令行窗口安装方式 安装指定文件到本地仓库命令&#xff1a;mvn install:install-file; 在windows的cm…

DAC调节DCDC输出电压的电路方案分析

BUCK型电源芯片的调压方式分析 1、前题 BUCK型的电源芯片非常多&#xff0c;常用的如LM2576、LM2596等等&#xff0c;这种芯片优点很多&#xff0c;比如功率大、体积小、效率高等。这种芯片一般都可以通过电阻分压的方式设定反馈脚VFB的电压来改变电源芯片的输出电压。但最近…

Java+微信小程序实现智慧家政系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询家政服务4.2 新增单条服务订单4.3 新增留言反馈4.4 小程序登录4.5 小程序数据展示 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的智慧家政系统&#xff0…

代码随想录算法训练营29期|day43 任务以及具体任务

第九章 动态规划 part05 1049. 最后一块石头的重量 II class Solution {public int lastStoneWeightII(int[] stones) {int sum 0;for (int i : stones) {sum i;}int target sum >> 1;//初始化dp数组int[] dp new int[target 1];for (int i 0; i < stones.lengt…

stm32Cubmax PWM实验

一、基本概念 PWM&#xff08;脉冲宽度调制&#xff09;是一种常用于控制电子设备的技术。它通过改变电信号的脉冲宽度来控制设备的输出功率或电流。在PWM中&#xff0c;所谓的脉冲宽度是指一个周期内脉冲的持续时间。周期是指脉冲重复的时间间隔。 在PWM中&#xff0c;一个周…

空想--让MYSQL安装双引擎SQL优化器

坑人的innodb_thread_concurrencyMYSQL的优化器是硬解析, 应用每次发往MYSQL的SQL是文本格式,需要编译,虽然时间不多,也就几百毫秒的事情,可架不住SQL的请求并发量啊! 为此数据库走了两条路线, 一条是ORACLE的缓存路线, 另外一条就是MYSQL的快速路线. ORACLE是尽可能的深度…

C语言——最大公因数和最小公倍数

在计算机科学中&#xff0c;求解两个或多个数的最大公因数&#xff08;Greatest Common Divisor&#xff0c;简称GCD&#xff09;和最小公倍数&#xff08;Least Common Multiple&#xff0c;简称LCM&#xff09;是数学计算中的基本问题。C语言作为一种广泛应用于科学计算和工程…

【Linux】文件的软硬链接

文章目录 一、文件和目录的一些命令ls 命令stat 命令 二、链接的概念三、软链接&#xff08;symbolic link&#xff09;创建和删除软链接的示例软链接的特性软链接的应用使用 find 查找链接文件 四、硬链接&#xff08;hard link&#xff09;创建和删除硬链接的示例硬链接的特性…

层层深入揭示C语言指针的底层机制

理解C语言指针的底层机制需要我们从硬件、操作系统和编译器三个层次逐步展开。 1. 硬件层次 计算机硬件是实现内存管理的基础。内存是一个由无数个存储单元组成的线性空间&#xff0c;每个存储单元都有一个唯一的地址。这个地址通常是一个二进制数&#xff0c;表示该存储单元…

飞马座卫星

1960年代马歇尔太空飞行中心的历史显然与建造土星五号月球火箭有关。然而&#xff0c;鲜为人知的是该中心在设计科学有效载荷方面的早期工作。 Fairchild 技术人员正在检查扩展的 Pegasus 流星体探测表面。Pegasus 由马里兰州黑格斯敦的 Fairchild Stratos Corporation 通过马歇…

【芯片设计- RTL 数字逻辑设计入门 11.1 -- 状态机实现 移位运算与乘法 1】

文章目录 移位运算与乘法状态机简介SystemVerilog中的测试平台VCS 波形仿真 阻塞赋值和非阻塞赋值有限状态机&#xff08;FSM&#xff09;与无限状态机的区别 本篇文章接着上篇文章【芯片设计- RTL 数字逻辑设计入门 11 – 移位运算与乘法】 继续介绍&#xff0c;这里使用状态机…

电子电器架构 —— 网关测试脚本分析

电子电器架构 —— 网关测试 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何 消耗你的人和事,多看一眼都是你的不对。非…

27/100两数相除(位移todo)

题目 27/100两数相除 给你两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相除&#xff0c;要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断&#xff0c;也就是截去&#xff08;truncate&#xff09;其小数部分。例如&#xff0c;8.345 将被截断为 8 …

5G NR 频率计算

5G中引入了频率栅格的概念&#xff0c;也就是小区中心频点和SSB的频域位置不能随意配置&#xff0c;必须满足一定规律&#xff0c;主要目的是为了UE能快速的搜索小区&#xff1b;其中三个最重要的概念是Channel raster 、synchronization raster和pointA。 1、Channel raster …

C++初阶:容器(Containers)vector常用接口详解

介绍完了string类的相关内容后&#xff1a;C初阶&#xff1a;适合新手的手撕string类&#xff08;模拟实现string类&#xff09; 接下来进入新的篇章&#xff0c;容器vector介绍&#xff1a; 文章目录 1.vector的初步介绍2.vector的定义&#xff08;constructor&#xff09;3.v…

二进制安全虚拟机Protostar靶场(8)heap3 Fastbins unlink exploit

前言 这是一个系列文章&#xff0c;之前已经介绍过一些二进制安全的基础知识&#xff0c;这里就不过多重复提及&#xff0c;不熟悉的同学可以去看看我之前写的文章 heap3 程序静态分析 https://exploit.education/protostar/heap-three/#include <stdlib.h> #include …

【Unity】重力场中的路径预测方法

前言 笔者前些天参加完了一场72小时的GameJam游戏开发比赛。这次比赛的主题是“探索”&#xff0c;笔者做了一个名为《探索者号》的探索宇宙的游戏&#xff08;游戏名一开始叫做《星际拾荒者》&#xff0c;但这不重要&#xff09;。 在开发过程中&#xff0c;笔者遇到了一些问…

高可用 k8s 1.29 一键安装脚本, 丝滑至极

博客原文 文章目录 集群配置配置清单集群规划集群网络规划 环境初始化主机配置 配置高可用ApiServer安装 nginx安装 Keepalived 安装脚本需要魔法的脚本不需要魔法的脚本配置自动补全加入其余节点 验证集群 集群配置 配置清单 OS&#xff1a; ubuntu 20.04kubernetes&#xf…