【docker】win10系统下docker容器安装及使用(一):docker的安装及简介

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无须任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行
(1)下载安装包并安装:
下载windows版本docker
下载win10运行所需的wsl_update_x64.msi
先行安装docker,再安装wsl_update_x64.msi,完成后运行即可。
注:Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层
(2)运行成功后配置需要的加速源,加快下载的速度:
注意在原配置后加一个逗号:

"registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
]

在这里插入图片描述
添加后自动重启并配置,在windows power shell下,使用命令docker info,显示配置后的结果:
在这里插入图片描述
(3)存储镜像的迁移工作:
原先默认的镜像存储空间位置为C盘,系统盘可能空间不够,可将相关镜像导出,另选其它地方存放。
导出镜像:
wsl --export docker-desktop-data “F:\docker-desktop-data.tar”
反注册:
wsl --unregister docker-desktop-data
在目标盘新建F:\docker\wsl文件夹后运行:
wsl --import docker-desktop-data “F:\docker\wsl” “F:\docker-desktop-data.tar” --version 2
在如下界面取消,重启并重新勾选Use the wsl2 based engine完成存储镜像的迁移工作。
在这里插入图片描述

(4)docker介绍:

Java程序就好比是容器,JVM则好比是runtime, JVM为Java程序提供运行环境。同样的道理,容器只有在runtime中才能运行。lxc、runc和rkt是目前主流的三种容器runtime。
在这里插入图片描述
runc是Docker自己开发的容器runtime,符合oci规范,也是现在Docker的默认runtime。
在这里插入图片描述
容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存、共享和重建
在这里插入图片描述
docker image是Docker容器的模板,runtime依据docker image创建容器。dockerfile是包含若干命令的文本文件,可以通过这些命令创建出docker image。

容器是通过image创建的,需要有一个仓库来统一存放image,这个仓库就叫做Registry。
Docker Hub(https://hub.docker.com)是Docker为公众提供的托管Registry,上面有很多现成的image,为Docker用户提供了极大的便利。

容器编排引擎:

容器核心技术使得容器能够在单个host上运行,而容器平台技术能够让容器作为集群在分布式环境中运行。容器平台技术包括容器编排引擎、容器管理平台和基于容器的PaaS,
kubernetes是Google领导开发的开源容器编排引擎,同时支持Docker和CoreOS容器。
动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。容器也会根据host的资源使用情况在不同host中迁移,容器的IP和端口也会随之发生变化。在这种动态的环境下,必须要有一种机制让client能够知道如何访问容器提供的服务。这就是服务发现技术要完成的工作。服务发现会保存容器集群中所有微服务最新的信息,比如IP和端口,并对外提供API,提供服务查询功能。

由于所有的容器共享同一个Host OS,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整个操作系统,所以容器部署和启动速度更快、开销更小,也更容易迁移。

容器与虚拟机的区别:
在这里插入图片描述
docker系统如同一个又一个的集装箱,使内部的软件可以连同依赖一起打包。
Docker采用的是Client/Server架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个Host上,客户端也可以通过socket或REST API与远程的服务器通信。

在这里插入图片描述
加-H与远程服务器通信

镜像

镜像有多种生成方法:(1)从无到有开始创建镜像;(2)下载并使用别人创建好的现成的镜像;(3)在现有镜像上创建新的镜像。
通过执行docker build 命令可以构建出Docker镜像
docker pull命令可以从Registry下载镜像。docker run命令则是先下载镜像(如果本地没有),然后再启动容器。
docker images可以查看镜像
docker ps显示正在运行的容器

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。 Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。 一款开源软件能否在商业上成功,很大程度上依赖三件事 - 成功的 user case(用例), 活跃的社区和一个好故事。 dotCloud 自家的 PaaS 产品建立在docker之上,长期维护且有大量的用户,社区也十分活跃,接下来我们看看docker的故事。 环境管理复杂 - 从各种OS到各种中间件到各种app, 一款产品能够成功作为开发者需要关心的东西太多,且难于管理,这个问题几乎在所有现代IT相关行业都需要面对。 云计算时代的到来 - AWS的成功, 引导开发者将应用转移到 cloud 上, 解决了硬件管理的问题,然而中间件相关的问题依然存在 (所以openstack HEAT和 AWS cloudformation 都着力解决这个问题)。开发者思路变化提供了可能性。 虚拟化手段的变化 - cloud 时代采用标配硬件来降低成本,采用虚拟化手段来满足用户按需使用的需求以及保证可用性和隔离性。然而无论是KVM还是Xen在 docker 看来,都在浪费资源,因为用户需要的是高效运行环境而非OS, GuestOS既浪费资源又难于管理, 更加轻量级的LXC更加灵活和快速 LXC的移动性 - LXC在 linux 2.6 的 kernel 里就已经存在了,但是其设计之初并非为云计算考虑的,缺少标准化的描述手段和容器的可迁移性,决定其构建出的环境难于迁移和标准化管理(相对于KVM之类image和snapshot的概念)。docker 就在这个问题上做出实质性的革新。这是docker最独特的地方。 VM技术和容器技术对比 VM技术和容器技术对比 面对上述几个问题,docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值