Windows 10 安装 Docker Desktop 4.x 完整图文教程(全网最完整的 Win10 Docker 安装部署教程)
如果你是新手,又想在Windows上安装Docker,想体验尝鲜一把,那么就非常适合看这篇文章。吾乐吧软件站会完整的介绍整个安装部署过程,以及介绍如何解决安装过程中遇到的一些坑。这些都是小牛前段时间使用Docker的时候,遇到的一些问题,这次整理成笔记,顺便分享给大家。
与此同时,网上很多教程,安装完就结束了,很多人都一脸懵逼,根本不知道应该怎么使用,本文也会进行简单的功能操作介绍。
基本介绍
Docker是一个用于创建容器化应用程序的完整开发平台,而Docker Desktop for Windows是在Windows上开始使用Docker的最佳方式。企业里面,普遍都是把Docker部署在CentOS环境中的,所以这里就不详细展开讲,本文只针对Docker for Windows进行讲解。
根据官网介绍,在Windows部署Docker有2种方式:一种是WSL 2 backend(强烈推荐),另一种是基于Hyper-V backend and Windows containers。网上的各种教程,让人眼花缭乱,根本不知道应该相信哪个版本,今天你不用纠结了,直接告诉你答案,那就是直接使用WSL 2 backend安装部署。说到WSL 2,其实Windows 11里面的安卓跨平台功能,貌似也是基于这个技术实现的。好了,废话不多说,直接开干。
准备工作
Docker官方网站:https://www.docker.com/products/docker-desktop
下载Docker Desktop 4.0.1 安装包:https://www.wuleba.com/?p=269
WSL 2 backend 安装要求:
- Windows 10 x64 位:Home 或 Pro 2004(内部版本 19041)或更高版本,或者 Enterprise 或 Education 1909(内部版本 18363)或更高版本。
- 具有二级地址转换 (SLAT) 的64 位处理器
- 4GB 系统内存
- 必须在 BIOS 设置中启用 BIOS 级硬件虚拟化支持。
- 详细要求看这里:https://docs.docker.com/desktop/windows/install
安装Docker
1、直接双击安装 Docker Desktop Installer.exe,直接按顺序安装即可
出现WSL2报错
安装之后,Win10上Docker无法正常启动,出现Install WSL 2 kernel update的情况。
会提示报错:WSL Microsoft .NET Framework
应用程序中发生了未经处理的异常。如果单击“继续”,应用程序将忽略此错误并尝试继续。如果单击“退出”,应用程序将立即关闭。
引发类型为:Docker. ApiServices. WSL2. WslKernelUpdateNotIns talledException的异常。
打开链接之后,发现是微软的网址,一大堆WSL说明,然后叫我们下载Linux镜像之类的
其实,这个就是大坑,因为小牛也下载了几个版本,依然无法解决WSL2报错的问题。估计是因为近期微软网站改版了,里面很多文档都发生变化,资料对不上导致的。其实真正的解决方法是:
安装WSL组件
需要手动安装 wsl.msi 组件后才可以正常启动Docker Desktop
诚通网盘 WSL2组件 wsl.msi 下载(提取密码:wuleba):https://url72.ctfile.com/f/571472-516916893-26290d
蓝奏云网盘 WSL2组件 wsl.msi 下载:https://wwa.lanzoui.com/ifMuDv5ua1c
1、安装刚刚下载的 wsl.msi
2、设置 WSL 2 为默认值
以管理员身份打开 PowerShell,然后运行以下命令以将 WSL 2 设置为 WSL 的默认版本:
wsl --set-default-version 2
3、Restart 重启Docker,然后就正常了,终于可以启动成功了。到了这里,安装Docker+WSL2的教程就到此结束。但是本文还没结束~~
基本操作
很多人安装Docker之后,完全不知道怎么使用,这里就花点时间,给大家介绍一下常用的操作:
1、配置Docker镜像仓库,用于加速访问,Settings——Docker Engine:
大家可以按照下面的设置配置,也可以在阿里云后台查看自己的镜像加速地址(也就是上图马赛克部分):https://cr.console.aliyun.com/cn-guangzhou/instances/mirrors
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
},
"builder": {
"gc": {
"enabled": true,
"defaultKeepStorage": "20GB"
}
}
}
2、使用Docker的话,一般需要自己打包Docker镜像,可以使用阿里云的“容器镜像服务”个人版:https://cr.console.aliyun.com/
个人免费版有些限制,但是基本够用的
3、进入个人版设置页面,添加“镜像仓库”、“命名空间”,然后就可以进行管理
4、进入管理页面,阿里有很详细的操作指南,告诉你应该怎么创建一个Docker镜像,大家按照步骤在PowerShell执行即可(这个步骤很重要,经常用到)
常用Docker命令
安装完Docker Desktop之后,其实是通过PowerShell去控制Docker容器的,所以,下面的命令全部都是在PowerShell下执行。
1、下载容器镜像:【这个是必须掌握的命令】
docker pull registry.cn-guangzhou.aliyuncs.com/xxxhub/xxx-container:1.0.0
或者是
docker pull xxx-container:1.0.0
2、启动容器:【这个是必须掌握的命令】
docker run -t -i -d -p 4000:4000 --name hexo-node xxx-container:1.0.0
或者
docker run -t -i -d --name hexo-node xxx-container:1.0.0 /bin/bash
或者写成(推荐这个写法)
docker run -tid --name hexo-node xxx-container:1.0.0 /bin/bash
-i:交互式操作
-t:终端
-d: 指定容器的运行模式(后台运行)
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
-p: 表示把容器里面的4000端口,绑定到宿主机的4000端口上
吾乐吧软件站提醒大家,-p参数表示把容器里面的4000端口,绑定到宿主机的4000端口上(第一个数字是宿主机端口,第二个数字是容器端口),这样我们就可以在宿主机通过 127.0.0.1:4000 访问网站。很多新手,会一直去百度,怎么把容器的端口暴露到宿主机访问,其实都是这里没有搞懂。如果需要暴露多个端口写多个即可,例如: -p 4000:4000 -p 8080:80,这样就可以把容器里的80端口绑定到宿主机的8080端口进行访问。
3、查看所有的容器命令如下:
docker ps -a
4、退出终端,直接输入:
exit
5、启动一个容器:
docker start <容器ID>或者<容器NAME>,例如:
docker start b750bbbcfd88
或者是
docker start hexo-node
6、停止一个容器:
docker stop <容器ID>
注意:<容器ID>通过 docker ps -a 查看
7、重启一个容器:
docker restart <容器ID>
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
1、docker attach
2、docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
8、attach 命令:
docker attach <容器ID>
注意: 如果从这个容器退出,会导致容器的停止。
9、exec 命令:【这个是必须掌握的命令】
docker exec -it <容器ID> /bin/bash
注意: 如果从这个容器退出,容器不会停止,这就是为什么推荐大家使用 docker exec 的原因。
10、如果要导出本地某个容器:
docker export 1e560fca3906 > ubuntu.tar
11、导入容器快照:
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
此外,也可以通过指定 URL 或者某个目录来导入,例如:
docker import http://example.com/exampleimage.tgz example/imagerepo
12、停止容器:
docker stop wizardly_chandrasekhar
13、删除容器(删除容器时,容器必须是停止状态):
docker rm -f 1e560fca3906
14、查看容器日志:
docker logs -f bf08b7f2cd89
15、查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号:
docker port bf08b7f2cd89
docker port wizardly_chandrasekhar
16、查看 Docker 的底层信息:
它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息:
docker inspect wizardly_chandrasekhar
17、列出镜像列表:
docker images
18、获取一个新的镜像:
docker pull ubuntu:13.10
19、查找镜像:
docker search httpd
20、删除镜像:
docker rmi hello-world
温馨提示:如何打包制作镜像,这里就不重复讲,请看上面阿里云的那个步骤即可。
Dockerfile模板
最后,给大家提供一个简单的 Dockerfile 参考
下面是一个完整的打包 Hexo 镜像的 Dockerfile 脚本:
All by flydoos 2021-10-10
近期,123云盘开始限制,必须注册帐号且登录后才能下载,且限制每天下载流量1GB,下载 123云盘免流量破解工具
版权声明:
小编:牛A与牛C之间
链接:https://wuleba.com/251.html
来源:吾乐吧软件站
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
下载说明:请不要相信网盘那边的广告,不要下载APP,普通下载就完事了!
牛A与牛C之间
Dockerfile模板参考:
FROM centos:8
MAINTAINER flydoos
ADD [“nginx-1.19.9.tar.gz”,”node-v16.10.0-linux-x64.tar.xz”,”/application/devops/”]
RUN yum install -y glibc-langpack-zh.x86_64 && yum install -y langpacks-zh_CN && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN yum install -y gcc automake autoconf libtool make pcre-devel zlib-devel openssl openssl-devel
RUN cd /application/devops/nginx-1.19.9/ && ./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module && make && make install
RUN mv /application/devops/node-v16.10.0-linux-x64 /usr/local/nodejs && ln -s /usr/local/nodejs/bin/npm /usr/local/bin/ && ln -s /usr/local/nodejs/bin/node /usr/local/bin/
ENV NODEJS_HOME /usr/local/nodejs
ENV PATH $NODEJS_HOME/bin:$PATH
RUN cd /application && npm install hexo-cli -g && hexo init blog && cd blog && npm install
ENV LANG=zh_CN.UTF-8
ENV LC_ALL=zh_CN.UTF-8
EXPOSE 4000
CMD [“/bin/sh”,”-c”,”cd /application/blog && hexo server”]
glau29
多谢共享
吾乐吧
PowerShell ColorTool 1904.29002(微软官方PowerShell主题配色工具)
https://www.wuleba.com/?p=103
大家玩Docker的话,会有大量时间是在操作PowerShell的,可以安装这个软件玩玩
awen
Thanks♪(・ω・)ノ牛总
HSL
百度云下载地址没有提取码啊
牛A与牛C之间@HSL
本文哪里有百度地址?只有其他网盘地址啊