一、Docker是什么?
Docker 是一个开放源代码软件,是一个开放平台,一个应用打包、分发、部署的工具, Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
跟普通虚拟机的对比特性 | 普通虚拟机 | Docker | 跨平台 | 通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行 | 支持的系统非常多,各类 windows 和 Linux 都支持 | 性能 | 性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了 | 性能好,只虚拟软件所需运行环境,最大化减少没用的配置 | 自动化 | 需要手动安装所有东西 | 一个命令就可以自动部署好所需环境 | 稳定性 | 稳定性不高,不同系统差异大 | 稳定性好,不同系统都一样部署方式 |
打包、分发、部署打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装
部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。
Docker 通常用来做什么 1.应用分发、部署,方便传播给他人安装。特别是开源软件和提供私有部署的应用 2.快速安装测试/学习软件,用完就丢(类似小程序),不把时间浪费在安装软件上。例如 Redis / MongoDB / ElasticSearch / ELK 3.多个版本软件共存,不污染系统,例如 Python2、Python3,Redis4.0,Redis5.0 4.Windows 上体验/学习各种 Linux 系统
重要概念:镜像、容器镜像:可以理解为软件安装包,可以方便的进行传播和安装。
容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。
二、安装Docker
1. 安装 Docker 前的准备:Docker for windows 安装和其他软件安装是一样的,但是有个前提,就是电脑必须启用虚拟化功能,在Windows没有推出WSL2之前,你可能需要借助专业版Windows的Hyper-V,但是有了WSL2之后,可以不用安装Hyper-V等任何虚拟机了。
另外有一点很重要,就是微软要求 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。
以基于WLS2安装Docker for windows为例,首先需要在Windows的程序与功能中启用Windows的Linux子系统和虚拟机功能平台:
备注:如果用wsl1需要打开Hyper,只用wsl2不打开Hyper也可以。
重启后,打开任务管理器查看是否有虚拟化启用
2. 安装WSL2
WSL,即Windows Subsystem on Linux,中文叫“适用于 Linux 的 Windows 子系统”。可以在windows里,直接启动一个linux系统。因为docker依赖linux内核,只能在linux下使用,windows就需要安装linux虚拟机来运行,而微软已经在win10内置了一个轻量级虚拟机,WSL2 便是运行在虚拟机上的一个完整的 linux 内核,所以需要利用WSL2安装docker。
下载wsl2需要的linux内核:
网址: https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel
更新WSL地址:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
点击下载最新的更新包,下好后双击运行安装即可。
将WSL2设置为默认版本:管理员身份运行Windows PowerShell,运行下面的命令。
- wsl --set-default-version 2
复制代码
3. 安装Docker Desktop for Windows
下载安装包Docker for windows下载地址:
https://desktop.docker.com/win/main/amd64/Docker Desktop Installer.exe
下好后直接双击运行安装即可,以下为安装界面
安装完成后启动成功的界面如下:
启动Docker Desktop for Windows,选择 Settings --> General,启动基于WSL2的引擎复选框(Use the WSL 2 based engine),一般默认已勾选了。
用PowerShell运行 wsl -l -v会发现已经创建了两个发行版了
到这儿安装就完成啦
更改镜像源
在国内从官方的Docker Hub拉取镜像经常会比较感人,所以我们需要利用国内的镜像源或者加速器
科大镜像:https://docker.mirrors.ustc.edu.cn/
网易:https://hub-mirror.c.163.com/
- "registry-mirrors": [
- "https://docker.mirrors.ustc.edu.cn",
- "https://registry.docker-cn.com",
- "http://hub-mirror.c.163.com",
- "https://mirror.ccs.tencentyun.com"
- ]
复制代码
当配置某一个镜像源地址之后,若发现拉取不到镜像,切换一个地址就行。
三、使用Docker
Docker提供了许多命令和选项,以帮助你运行和管理容器。下面是一些常用的命令:
docker pull <镜像名称> #从Docker镜像仓库中获取镜像。
docker images #列出当前系统上所有的镜像。
docker ps #列出当前正在运行的所有容器。
docker run #使用指定的镜像在新的容器中运行一个命令。
docker stop <容器ID> #停止一个正在运行的容器。
docker rm <容器ID> #删除一个停止的容器。
docker run 命令的 -i -t -d 选项的作用
'-d'告诉Docker在后台分离并运行,'-i'开始交互式会话,'-t'模拟一个终端。
docker run -d ubuntu /bin/bash #-d为后台启动,exit 退出后容器不会关闭
docker run -it ubuntu /bin/bash # -it为交互式启动,exit 退出后容器会被关闭
docker run -dit ubuntu /bin/bash #-dit为 -d 和 -it 联用
安装一个镜像:
启动nextcoud实例设置图形界面:
|