目的:在Windows上玩转docker
前言:
我们知道docker是运行在linux内核上的,而Windows想要运行docker引擎需要安装虚拟机,在虚拟机中安装Linux内核,或者直接安装Linux发行版,比如CentOS、Ubuntu、Debian等,而Linux发行版是包含两部分的,1、操作Linux内核的部分 2、Linux内核
总的来说:核心就是Linux内核
看一下人工智能ChatGPT怎么回答LInux系统组成?
Linux 发行版(也称为 Linux 系统或 Linux 操作系统)是一种使用 Linux 内核的操作系统。Linux 内核是一个操作系统的核心,负责管理硬件资源,如内存、处理器和磁盘空间,并提供系统调用接口来允许用户程序与硬件交互。
Linux 发行版通常包含以下部分:
Linux 内核:这是 Linux 发行版的核心,负责管理硬件资源和提供系统调用接口。
工具链:这些是构建应用程序所需的编译器、链接器和其他工具。
库:这些是提供软件功能的代码库,包括 C 库、数学库和其他常用库。
系统工具:这些是操作系统所需的系统管理工具,如 init、systemd 和 syslog。
用户程序:这些是用户使用的应用程序,如 shells、文本编辑器和图形用户界面 (GUI) 程序。
文档:这些是帮助用户了解如何使用操作系统的文件,包括用户手册和帮助文件。
Linux 发行版还可能包括其他组件,如内核模块和驱动程序,用于支持特定硬件和设备。
安装wsl虚拟机
1、管理员身份运行PowerShell
2、执行安装wsl指令
wsl --install
这个指令会自动下载安装wsl ,还会下载ubuntu,但是下载ubuntu进度一直不动。我们通过微软商店安装ubuntu
这里我已经安装好了,如果安装ubuntu界面一直不动的话,重启电脑即可
ubuntu进去会叫你设置 一个用户,直接设置用户名为ubuntu即可。
接下来设置root密码
sudo passwd root
输入ubuntu密码就能设置root用户密码了
下载安装docker
下载地址:Install Docker Desktop on Windows | Docker Documentation
安装没什么可说的,默认安装即可,注意安装好需要自己重启电脑。
因为默认配置镜像是从国外拉取的,速度很慢,配置阿里云镜像
方法一、
打开阿里云控制台,没有的可以用淘宝账号或者支付宝账号直接登录
在搜索框输入容器镜像服务
复制加速器地址
在ubuntu中修改docker配置
vim /etc/docker/daemon.json
{
"authorization-plugins": [],
"data-root": "",
#Docker运行时使用的根路径,根路径下的内容稍后介绍,默认/var/lib/docker
"dns": [],
#设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看
"dns-opts": [],
#容器 /etc/resolv.conf 文件,其他设置
"dns-search": [],
#设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS不仅搜索host,还会搜索host.example.com。注意:如果不设置,Docker 会默认用主机上的 /etc/resolv.conf来配置容器。
"exec-opts": [],
"exec-root": "",
"experimental": false,
"features": {},
"storage-driver": "",
"storage-opts": [],
"labels": [],
#docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121
"live-restore": true,
"log-driver": "",
"log-opts": {},
"mtu": 0,
"pidfile": "",
#Docker守护进程的PID文件
"cluster-store": "",
"cluster-store-opts": {},
"cluster-advertise": "",
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5,
"default-shm-size": "64M",
"shutdown-timeout": 15,
"debug": true,
#启用debug的模式,启用后,可以看到很多的启动信息。默认false
"hosts": [],
#设置容器hosts
"log-level": "",
"tls": true,
#默认 false, 启动TLS认证开关
"tlscacert": "",
#默认 ~/.docker/ca.pem,通过CA认证过的的certificate文件路径
"tlscert": "",
#默认 ~/.docker/cert.pem ,TLS的certificate文件路径
"tlskey": "",
#默认~/.docker/key.pem,TLS的key文件路径
"tlsverify": true,
#默认false,使用TLS并做后台进程与客户端通讯的验证
"tls": true,
"tlsverify": true,
"tlscacert": "",
"tlscert": "",
"tlskey": "",
"swarm-default-advertise-addr": "",
"api-cors-header": "",
"selinux-enabled": false,
#默认 false,启用selinux支持
"userns-remap": "",
"group": "",
#Unix套接字的属组,仅指/var/run/docker.sock
"cgroup-parent": "",
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 64000,
"Soft": 64000
}
},
"init": false,
"init-path": "/usr/libexec/docker-init",
"ipv6": false,
"iptables": false,
"ip-forward": false,
#默认true, 启用 net.ipv4.ip_forward ,进入容器后使用sysctl -a|grepnet.ipv4.ip_forward查看
"ip-masq": false,
"userland-proxy": false,
"userland-proxy-path": "/usr/libexec/docker-proxy",
"ip": "0.0.0.0",
"bridge": "",
"bip": "",
"fixed-cidr": "",
"fixed-cidr-v6": "",
"default-gateway": "",
"default-gateway-v6": "",
"icc": false,
"raw-logs": false,
"allow-nondistributable-artifacts": [],
"registry-mirrors": [],
#镜像加速的地址,增加后在 docker info中可查看。
"seccomp-profile": "",
"insecure-registries": [],
#配置docker的私库地址
"no-new-privileges": false,
"default-runtime": "runc",
"oom-score-adjust": -500,
"node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"],
"runtimes": {
"cc-runtime": {
"path": "/usr/bin/cc-runtime"
},
"custom": {
"path": "/usr/local/bin/my-runc-replacement",
"runtimeArgs": [
"--debug"
]
}
},
"default-address-pools":[{"base":"172.80.0.0/16","size":24},
{"base":"172.90.0.0/16","size":24}]
}
重启docker即可
方法二、在docker界面设置
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
}
可以把阿里云的镜像加速也添加进来
如果出现一下情况,需要切换ubuntu的wsl版本
通过指令查看ubuntu的wsl的版本
wsl -l -v
可以看到ubuntu的wsl版本为1,需要切换为2
wsl --set-version Ubuntu-22.04 2
Ubuntu-22.04为我的Linux操作系统名,如果下载的Ubuntu版本不一样自己修改
转换完成
在docker界面设置运行ubuntu通过wsl运行docker
点击apply & restart
现在去Ubuntu看一下能不能用docker
出现 这个情况,解决方案
WSL2启动时提示:参考的对象类型不支持尝试的操作_fangye945a的博客-CSDN博客_参考的对象类型不支持尝试的操作。
出现下面情况
切换成root用户就行
拉取镜像
1、ubuntu
2、cmd
3、powershell