Docker简介和安装

Docker简介和安装
墨颜丶Docker 是什么
Docker 是一个应用打包、分发、部署的工具
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,
而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
跟普通虚拟机的对比
特性 | 普通虚拟机 | Docker |
---|---|---|
跨平台 | 通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行 | 支持的系统非常多,各类 windows 和 Linux 都支持 |
性能 | 性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了 | 性能好,只虚拟软件所需运行环境,最大化减少没用的配置 |
自动化 | 需要手动安装所有东西 | 一个命令就可以自动部署好所需环境 |
稳定性 | 稳定性不高,不同系统差异大 | 稳定性好,不同系统都一样部署方式 |
打包、分发、部署
打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装
部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在
Windows/Mac/Linux。
Docker 部署的优势
常规应用开发部署方式:自己在 Windows 上开发、测试 --> 到 Linux 服务器配置运行环境部署。
问题:我机器上跑都没问题,怎么到服务器就各种问题了
用 Docker 开发部署流程:自己在 Windows 上开发、测试 --> 打包为 Docker 镜像(可以理解为软件安装包) --> 各种服务器上只需要一个命令部署好
优点:确保了不同机器上跑都是一致的运行环境,不会出现我机器上跑正常,你机器跑就有问题的情况。
Docker 通常用来做什么
- 应用分发、部署,方便传播给他人安装。特别是开源软件和提供私有部署的应用
- 快速安装测试/学习软件,用完就丢(类似小程序),不把时间浪费在安装软件上。例如 Redis / MongoDB / ElasticSearch / ELK
- 多个版本软件共存,不污染系统,例如 Python2、Python3,Redis4.0,Redis5.0
- Windows 上体验/学习各种 Linux 系统
重要概念:镜像、容器
镜像:可以理解为软件安装包,可以方便的进行传播和安装。
容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。
win安装
桌面版:https://www.docker.com/products/docker-desktop
服务器版:https://docs.docker.com/engine/install/#server
启动报错解决
报错截图
解决方法:
控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)
命令行安装 Linux 内核
1 | # 检查并下载最新的 WSL 内核版本 |
上面命令很可能你安装不了如安全频道支持出错,微软商店也可能打不开,如果遇到这个问题
win+r
输入inetcpl.cpl
-> 高级 -> 选中使用TLS1.1 使用TLS1.2 使用TLS1.3
->确定
查看代码测试
1 | (base) PS C:\WINDOWS\system32> wsl --update |
设置开机启动 Hypervisor
bcdedit /set hypervisorlaunchtype auto
设置默认使用版本2
wsl.exe --set-default-version 2
查看 WSL 是否安装正确
wsl.exe --list --verbose
应该如下图,可以看到一个 Linux 系统,名字你的不一定跟我的一样,看你安装的是什么版本。
并且 VERSION 是 2
1 | (base) PS C:\WINDOWS\system32> wsl.exe --set-default-version 2 |
确保 BIOS 已开启虚拟化,下图检查是否已开启好
出现下图错误,点击链接安装最新版本的 WSL2
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
镜像加速源
镜像加速器 | 镜像加速器地址 |
---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
DaoCloud 镜像站 | http://f1361db2.m.daocloud.io |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
科大镜像站 | https://docker.mirrors.ustc.edu.cn |
阿里云 | https://ud6340vz.mirror.aliyuncs.com |
七牛云 | https://reg-mirror.qiniu.com |
网易云 | https://hub-mirror.c.163.com |
腾讯云 | https://mirror.ccs.tencentyun.com |
1 | "registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"], |
linux安装
脚本快速安装docker
官方提供了安装脚本来快速安装最新版本docker-ce:
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
参考:
GitHub:https://github.com/docker/docker-install
Docker官方:https://docs.docker.com/engine/install/centos/#install-using-the-convenience-script
安装docker-ce社区版
- 配置Docker yum源
1 | # 这里使用国内阿里云Yum源 |
- 安装必要的依赖包:
1 | yum install -y yum-utils device-mapper-persistent-data lvm2 |
- 列出可用版本,然后选择并安装指定版本:
1 | yum list docker-ce --showduplicates | sort -r |
- 安装Docker-CE:
1 | # 默认安装最新版 |
- 查看docker版本,确认安装成功
1 | [root@wang ~]# docker --version |
- 启动Docker服务并设为开机启动
1 | $ systemctl enable --now docker |
- 配置国内镜像加速(可选)
鉴于国内网络问题,后续拉取 Docker 镜像比较慢,建议安装 Docker 之后配置国内镜像加速。
阿里云镜像加速 pu0sxk0h
是我阿里云自己的ID
1 | tee /etc/docker/daemon.json <<-'EOF' |
Azure 中国镜像加速
1 | { |
清华源镜像加速
1 | { |
daocloud镜像加速
1 | curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io |
配置完成后重启docker服务
1 | systemctl daemon-reload && systemctl restart docker |
执行以下命令重启Docker服务以应用更改:
1 | sudo systemctl daemon-reload |
检查加速配置是否生效
执行 docker info
,如果从结果中看到了如下内容,说明配置成功。
1 | $ docker info | grep Mirrors -A1 |
测试镜像拉取速度
1 | $ time docker pull centos |
开启docker的内核流量转发
开启内核流量转发,可以根据自己情况来配置,不是必须项。
1 | # 优化Docker网络性能和安全性 |
centos8安装docker-ce
1 | #配置阿里云yum源 |
文笔流畅美,点赞纷至来;
内容引入胜,分享乐开怀;
佳作值得赏,打赏表心怀。