Docker之介绍与安装
Docker 说明
本章,我们主要从Docker简介
、Docker中几个核心概念
和Docker安装
这几个方面对Docker进行介绍!
1、 Docker 简介
1.1、 什么是 Docker
Docker 官网:https://www.docker.com
Docker 是一个开源的应用容器引擎,是一个轻量级容器技术。
Docker 支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。
运行中的这个镜像称为容器,容器启动是非常快速的。
Docker 的英文意思是码头工人,意思就是搬运东西的意思,其实这和 Docker 的特点是一样的,Docker 提供的就是一种容器化搬运东西(我们的软件或程序)的过程。Docker 自己本来是运行在操作系统上一个程序软件,它会提供一个容器环境,使我们的程序独立地运行在容器中,所以说,官方给 Docker 起的这个名字也真是应景。
1.2、 Docker 的特点
1.2.1、更高效的利用系统资源
Docker 对系统资源的利用率很高,无论是应用执行速度,内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,对比虚拟化技术,一个相同配置的主机往往可以运行更多数量的应用。
1.2.2、更快速的启动时间
传统的虚拟化技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核
,无需启动完整的操作系统,因此可以做到秒级
,甚至毫秒级
的启动时间,大大节约了开发测试,部署的时间。
1.2.3、一致的运行环境
开发过程中常见的一个问题是环境一致问题,由于开发环境、测试环境、生产环境不一致,导致有些 Bug 并未在开发过程中发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保环境一致性,从而不会在出现这段代码在我机器上没问题这类问题。
1.2.4、持续支付和部署
对开发和运维人员来说,最希望就是一次创建和部署,可以在任意地方运行。而且使用 Docker File 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。
1.2.5、更轻松的迁移
由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本、其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
1.2.6、更轻松的维护和扩展
Docker 使用的分层存储以及镜像技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得十分简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的官网镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大降低了应用服务的镜像制作成本。
1.3、 Docker 和虚拟机
Docker 是一个能把开发的应用程序自动部署到容器的开源引擎,Docker 在概念上可以理解为一个虚拟机,但却不是真正意义上的虚拟机。
虚拟机是在一台物理机上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。Docker 是开源的应用容器引擎,依然需要先在电脑上安装操作系统,然后安装 Docker 容器管理器;
虚拟机是在硬件级别进行虚拟化,而 Docker 是在操作系统的层面虚拟化;
虚拟机是通过模拟硬件搭建操作系统,而 Docker 则是复用操作系统;
虚拟机实现了操作系统之间的隔离,Docker 只是进程之间的隔离,所以虚拟机的隔离级别更高,安全性更强;
Docker 的运行速度更快;
Docker 的文件要小得多,虚拟机要大得多。
所以,从运作原理上来看,Docker 更加的轻量级,虚拟机更加的笨重,Docker 启动也十分的快,部署起来也方便,所以越来越多的人开始使用 Docker。
2、 Docker 中几个核心概念
2.1、 镜像(Image)
镜像到底是个什么东西呢,很多人在学习 Docker 的时候都是一头雾水的,可能是歪果仁对镜像情有独钟吧,好多东西都有镜像的概念。比如我们安装系统的.iso文件,其实就是镜像,这里你就可以把镜像认为是一种模板。我们可以使用 Docker 根据这个模板创建容器来运行,其实更可以理解为镜像是好比 Github 上的仓库一样,我们可以克隆下来源代码然后运行,运行起来的代码可以是一个网站、一个应用程序啥的,这就可以叫做容器。说白了,镜像就是一堆静态的模板,运行起来的镜像就是容器。镜像一般需要我们拉取下来,是只读的,这个我们克隆 Github 上的仓库是一样一样的。
Docker 镜像中有分层
的概念,就是一个镜像可能基于好几个镜像,比如一个 Web 运行环境可能需要操作系统 Ubuntu、Mysql、.Net Core Runtime 运行时等,那我们拉取的这个镜像就会包好这几个镜像,这就好像我们前边说的打包好的运行环境一样,直接就拉下来一个小电脑一样。
2.2、 容器(Container)
当我们拉取了一个镜像,然后 Run 一下,就会根据这个镜像运行出来一个容器,运行的容器就好像我们的应用程序一样,可以访问可以停止,我们运用多次 Run 命令,就运行了很多很多容器,也可以说是镜像的实例。从这个角度来看,我们可以把镜像看作是类,容器看作 new 出来的实例,也是很合适的。
2.3、 仓库(Repository)
存放镜像的地方就是仓库,就好比存放代码的地方是 Github 一样,我们就把 Github 称为代码的仓库,Github 算是最大的仓库。那么存放 Docker 镜像的地方我们叫做 DockerHub,是 Docker 的中央仓库。其实已经有 DockerHub 这个网站了https://hub.Docker.com,这就是存放 Docker 镜像的官方仓库,好多官方的也保存在这里,保证了镜像的安全性和可靠性,我们可以从上边拉取一下镜像来运行我们的软件。当然我们也可以制作好我们自己镜像推送上去,不过这些肯定是要官方审核的,防止有些人写入一些恶意代码。不过我们可以推到我们自己的 DockerHub 上去,供我们自己使用,这个就好我们的 Github 账号一样了,属于私有镜像了。
2.4、 数据卷(Volumn)
实际上我们的容器就好像是一个简易版的操作系统
,只不过系统中只安装了我们的程序运行所需要的环境,前边说到我们的容器是 new 出来的实例,既然是 new 出来的实例那就会销毁,那如果销毁了我们的程序产生出的需要持久化的数据怎么办呢,容器运行的时候我们可以进容器去查看,容器一旦销毁就什么都没有了。所以数据卷就是来解决这个问题的,是用来做数据持久化到我们的宿主机上容器间的数据共享,简单的说就是将宿主机的目录映射到容器中的目录,应用程序在容器中的目录读写数据会同步到宿主机上,这样容器产生的数据就可以持久化了,比如我们的数据库容器,就可以把数据存到我们宿主机上的真实磁盘上了。
3、 Docker 安装
接下来我们以在 Windows 中安装 Docker 为例进行介绍,其他环境类似。
3.1、 启用 Windows 虚拟化
打开任务管理器,点击性能,查看虚拟化是否已启用,如下图所示:
3.2、 启用 Hyper-v
打开控制面板,点击程序和功能,点击启用或关闭 Windows 功能,勾选 Hyper-v,确定即可(安装完 Hyper-v 后,可能需要重启电脑),如下图所示:
3.3、 下载 Docker
下载地址:https://www.docker.com/products/docker-desktop
3.4、 安装 Docker
双击刚才下载下来的Docker Desktop Installer.exe文件安装即可,不需要任何设置,如下图所示:
双击打开:
安装中:
点击
Close and restart
代表需要重启电脑:电脑重启后,我们可以在 CMD 中输入如下命令查看安装的 Docker 版本:
docker --version
电脑重启后,Docker 会自动启动,在启动界面我们点击
Accept
即可,如下图所示:注意:如果启动后出现如下图所示的警告,请先下载 Linux 内核更新包进行安装更新, 更新包下载地址:https://aka.ms/wsl2kernel(或者点击弹出警告中的连接),更新后点击
Restart
按钮即可。安装 WSL 更新包:
重启 Docker:
重启如果出现Docker.ApiServices.WSL2.WslKernelUpdateNotInstalledException这个异常错误,说明需要安装WSL这个插件, 打开https://czf-net.xyz/res,下载 wsl.msi 文件,然后安装即可,再次打开 Docker Desktop 就正常了。
如果重启后出现如下所示的错误警告,在 CMD 中执行如下命令并重启电脑:
netsh winsock reset
Docker.Core.DockerException:
Failed to start
在 Docker.Engines.LinuxkitDaemonStartup.<WaitAsync>d__5.MoveNext() 位置 C:\workspaces\4.12.x\src\github.com\docker\pinata\win\src\Docker.Engines\LinuxkitDaemonStartup.cs:行号 54
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__26.MoveNext() 位置 C:\workspaces\4.12.x\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:行号 170
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() 位置 C:\workspaces\4.12.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:行号 29
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\4.12.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 67
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\4.12.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 92
3.5、 启动 Docker
正常启动 Docker 的效果如下图所示:
3.6、 登录 Docker
我们可以点击窗体的右上角登录按钮登录自己的 Docker 账号,如下图所示:
3.7、 配置镜像加速地址
我们可以配置国内镜像加速下载地址,点击右上角的设置按钮,点击 Docker Engine 选项,增加如下配置,然后点击Apply & Restart
按钮即可:
增加的配置:
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
完整配置:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
}
}
设置效果图:
保存后的设置会存储到C:\Users\quber\.docker\daemon.json
文件中。
更多设置请参考官网:https://docs.docker.com/engine/reference/commandline/dockerd
3.8、 修改 Docker 数据存储位置
由于 Docker 默认安装在 C 盘(C:\Program Files\Docker),这里我们需要将 Docker 的数据存储转移到其他盘,如 D:\Net_Program\Net_Docker,先退出 Docker Desktop,如下图所示:
新建目录 D:\Net_Program\Net_Docker,执行如下命令导出备份数据到 D:\Net_Program\Net_Docker
wsl --export docker-desktop-data "D:\Net_Program\Net_Docker\docker-desktop-data.tar"
说明:D:\Net_Program\Net_Docker为备份的地址,docker-desktop-data.tar为备份的名称
执行如下命令删除原有数据:
wsl --unregister docker-desktop-data
执行如下命令更改数据存储盘并恢复数据:
wsl --import docker-desktop-data "D:\Net_Program\Net_Docker" "D:\Net_Program\Net_Docker\docker-desktop-data.tar" --version 2
说明:"D:\Net_Program\Net_Docker"为更改的数据存储盘地址,"D:\Net_Program\Net_Docker\docker-desktop-data.tar"为导入的数据备份文件地址(即上面我们备份的文件地址),导入完成后在D:\Net_Program\Net_Docker下会生成一个 ext4.vhdx 的虚拟磁盘路径
4、 安装完成
到此,Windows 中安装 Docker 就完成了。
5、Windows Server 中安装 Docker
这里我们以在 Windows Server 2016 Datacenter 为例进行介绍。
由于 Windows Server 中不支持使用 Docker Desktop 直接安装,因此,需要按照一下步骤进行安装。
5.1、 下载更新
在运行中输入sconfig
打开参数设置菜单:
然后输入数字 6 并确定(下载并安装更新),在弹出的黑色对话框中选择A
,让它下载更新并重启,此操作必须进行,否则后续安装会失败或者各种报错类似于 Linux 各种软件版本依赖:
以管理员身份运行 PowerShell,由于 Windows Server 2016 中文版不支持安装的 NuGet,需要使用命令将原有的 Tls一级修改为二级才能安装 NuGet 服务,执行如下命令:
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
5.2、 安装 NuGet 服务
执行如下命令指定 NuGet 安装包最小版本:
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
安装 Docker 模块:
Install-Module -Name DockerMsftProvider -Force
安装 Docker 包:
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
:::danger 注意
如果这一步安装失败,大概的错误是Install-Package :找不到路径“C:\Users\xxxx……\AppData\Local\DockerMsftProvider\Docker-17-05-2-ee-13.zip”……。
定位到路径C:\Users\Administrator\AppData\Local\Temp\DockerMsftProvider
,查看该文件架下是否有``,如果没有,需要手动下载https://dockermsft.blob.core.windows.net/dockercontainer/docker-1-12-2-cs2-ws-beta.zip放到这个文件夹下。
最后再执行安装 Docker 包命令即可:
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
:::
安装完成后重启计算机生效(注意,执行如下命令将重启电脑,请谨慎操作):
Restart-Computer -Force
5.3、 验证 Docker
重启后,我们在 PowerShell 中输入如下命令可查看 Docker 的版本信息。
查看 Docker 的版本号或版本信息:
docker --version
docker version
查看 Docker 的信息:
docker info
5.4、 修改 Docker 配置
找到文件
C:\ProgramData\docker\config\daemon.json
,如果没有该文件就创建,填入如下配置:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"graph": "E:\\03Docker\\Docker"
}说明:
registry-mirrors 代表镜像加速地址;
graph 代表 Docker 数据存储地址;
如果出现镜像拉取失败“no matching manifest for windows/amd64 10.0.18362 in the manifest list entries”,需要将“experimental”设置为“true”,如果拉取镜像还是出现上述错误,请尝试在拉取命令后面加上
:nanoserver
(如 docker pull redis:nanoserver),再次拉取镜像即可成功;PS:
nanoserver
是基于 Windows 上的虚拟化实践。
在 PowerShell 中分别执行如下命令重启 Docker 服务:
net stop docker
net start docker
或者直接执行
Restart-Service docker
重启 Docker 服务:
5.5、 测试
我们以安装 Redis 为例,在 CMD 中执行如下命令拉取 Redis 镜像:
docker pull redis
如果出现“no matching manifest for windows/amd64 10.0.14393 in the manifest list entries”的错误提示,请将C:\ProgramData\docker\config\daemon.json
配置文件中的experimental
设置为true
,然后重启 Docker 服务,再次拉取镜像即可成功!
如果拉取镜像还是出现上述错误,请在拉取镜像命令最后加上:nanoserver
,再次拉取镜像即可成功!
docker pull redis:nanoserver
PS:nanoserver
是基于 Windows 上的虚拟化实践。
5.6、Hyper-V 安装 Liunx Container
打开
服务器管理器
,鼠标右键选择Hyper-V 管理器
,如下图所示:
在弹出的窗体中选择
虚拟交换机管理器
,如下图所示:
在弹窗的窗体中选择
创建虚拟交换机
,如下图所示:
然后填写名称和说明等信息,如下图所示:
下载 Docker-Machine
到https://github.com/docker/machine/releases去下载docker-machine-Windows-x86_64.exe,下载下来后重命名为
docker-machine.exe
,然后将``放入D:\01Software\Docker文件夹下,如下图所示:
以管理员身份运行
CMD
,并定位到D:\01Software\Docker,然后执行如下命令:docker-machine create -d hyperv --hyperv-virtual-switch "DockerNat" VM8
说明:命令中的
DockerNat
就是刚才我们新建的虚拟机名称。然后等待命令执行完成,如下图所示:
:::danger 注意
如果遇到
https://github.com/boot2docker/boot2docker/releases/download/v19.03.12/boot2docker.iso
一直下载不下来,我们可以手动下载该文件,然后将该文件放入C:\Users\Administrator\.docker\machine\cache
目录内,然后再重新执行上述命令即可。
:::
执行如下命令,把当前主机设置为默认 Docker 命令运行的主机:
docker-machine.exe env VM8
执行如下命令:
@FOR /f "tokens=*" %i IN ('docker-machine env vm8') DO @%i
6、 设置 Vmmem 内存占用配置
默认情况下,当开启 Docker 后,Windows 中的 Vmmem 进程占用的内存非常高,如下图所示:
6.1. 修改.wslconfig配置
查看C:\Users\quber下是否有.wslconfig文件,没有则新建一个。
然后设置如下配置:
[wsl2]
# 设置最大占用内存为2GB
memory=2GB
更多设置请参考微软官方说明:https://docs.microsoft.com/en-us/windows/wsl/wsl-config#configuration-setting-for-wslconfig
6.2. 在 CMD 中运行如下命令
wsl --shutdown
6.3. 然后重启 Docker Desktop
我们再看设置后的效果:
7、 Portainer 安装
Portainer 的作用就相当于 Docker Desktop,只不过为 Web 端进行管理。
7.1、 拉取 Portainer 镜像
执行如下命令拉取 Portainer 镜像:
docker pull portainer/portainer
7.2、 创建 Portainer 容器
新建目录D:\Net_Program\Net_Docker\Portainer\Data
,用于存储 Portainer 的相关数据。
执行如下命令创建 Portainer 容器并运行:
docker run -d --name=portainer -p 8000:8000 -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v D:/Net_Program/Net_Docker/Portainer/Data:/data portainer/portainer
7.3、 运行 Web 管理端
此时我们在浏览器中访问http://localhost:9000/地址即可打开 Web 管理端:
初始打开的时候,需要创建账号和密码,密码长度不少于 8 位。
创建用户进入系统后,选择第一个选项“Docker”,点击“Connect”按钮即可进入 Docker 的管理界面:
接下来我们就可以在 Docker 中拉取各种镜像进行安装了,如:Docker 中安装 Redis
Docker之介绍与安装的更多相关文章
- Docker的介绍与安装教程
基于Windows系统下docker的介绍与安装教程以及更换docker镜像源教程 目录 基于Windows系统下docker的介绍与安装教程以及更换docker镜像源教程 Docker的核心概念 D ...
- Docker入门-介绍和安装
Docker容器 Docker是什么 Docker最初是dotCloud公司创建人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于 ...
- Docker 学习应用篇之二: Docker的介绍和安装
之前说过Docker的好处,Docker可以集装箱化的部署应用程序.那么Docker是通过什么实现的呢.要理解Docker内部构建,需要先理解Docker的四种部件 1)images:镜像,docke ...
- docker 简单介绍与安装
主机虚拟化(vmware,visual box等) type-Ⅰ type=Ⅱ 主机虚拟化是隔离最彻底的,但是由于多隔了一个虚拟的操作系统,性能会慢一些. 容器虚拟化(docker等) 隔离没有主机虚 ...
- Docker系列一:Docker的介绍和安装
Docker介绍 Docker是指容器化技术,用于支持创建和实验Linux Container.借助Docker,你可以将容器当做重量轻.模块化的虚拟机来使用,同时,你还将获得高度的灵活性,从而实现对 ...
- Docker的介绍及安装
什么是Dcoker? 引用度娘的解释:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 linux 机器上,也可以实现虚拟化.容器 ...
- Docker的介绍和安装(1)
一.虚拟化简介 1.虚拟化概念 计算机虚拟化(Computing Virtualization),一种资源管理技术,是指通过虚拟化技术将一台计算机的各种实体资源 , 如处理器 , 网络 , 内存及存储 ...
- 学习Mysql过程中拓展的其他技术栈:Docker入门介绍
一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...
- Docker Compose 介绍安装
Compose介绍 Compose是一个定义和管理多容器的工具,也是一种容器编排工具,前身是Pig,使用Python语言编写.使用Compose配置文件描述多个容器应用的架构,biubiu使用什么镜像 ...
随机推荐
- 羽夏看Linux内核——引导启动(上)
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- Get请求使用请求体传递参数会报400异常的问题
问题描述: 前端使用Get请求并且使用请求体传递参数,后端使用@RequestBody注解封装参数,这时会出现400的异常信息. 解决方法: 1.Get请求不要使用请求体,使用请求体的话用POST请求 ...
- Swagger以及knife4j的基本使用
Swagger以及knife4j基本使用 目录 Swagger以及knife4j基本使用 Swagger 介绍: Restful 面向资源 SpringBoot使用swagger Knife4j -- ...
- liunx系统docker部署.net core3.1
此篇文章演示基本的基于docker部署.netcore服务,liunx系统腾讯云ubuntu,.net core版本3.1. 1.安装docker apt install docker.io 2.拉取 ...
- rh358 003 ansible部署双网卡绑定 DNS原理 bind正向解析
双网卡绑定 绑定多张网卡成为逻辑口,从而实现链路冗余,以及数据流量的负载均衡 1.创建team口 [root@servera ~]# nmcli connection add type team co ...
- git hooks在业务中的使用
起因 最近公司项目发生了一起线上事故,最后排查下来是配置文件的问题.项目里application.yml文件内会用@build.time@记录打包时的时间,但是这个写法是build-helper-ma ...
- ELK套件部署
前言 经过两周的不断碰壁,版本的选择 最终选择ELK的7.6.1套餐 因为我所需要的的警报插件sentinl也才跟新到7.6.1 运行环境:centos7 需要开放的端口:5601,9200,514( ...
- TortoiseSVN 执行清理( cleanUp )失败的解决方案
TortoiseSVN 执行清理( cleanUp )失败的解决方案 今天碰到了一个比较棘手的问题,在这里做一下记录,以方便自己和有需要的朋友在之后碰到该类问题时有个参考. 现象 更新SVN时弹出清理 ...
- 坚守自主创新,璞华HawkEye IETM系统惠及国计民生
可上九天揽月,可下五洋捉鳖,这是我们很多年的梦想.而要实现这样的梦想,不仅需要安全可靠的技术装备,还需要让这些技术装备处于良好的维保状态.于是,作为装备维保过程中必须的知识创作.管理.发布.浏览工具, ...
- Windows 2012 R2 计划任务发送邮件
这两天把域控制器升级到了2012 R2,忽然发现原本用的系统自动发邮件提示用户账户锁定的计划任务配置起来有点麻烦了.原因是微软把自动发送邮件和提示消息的功能从计划任务中去除了. 首先用wevtu ...