【一文搞定】Linux、Mac、Windows安装Docker与配置教程!

一、Windows 安装

1.1 安装与启用 Hyper-V

Hyper-V 是微软开发的虚拟机,类似于 VMWareVirtualBox,仅适用于 Windows 10Windows 11,一般电脑都会自带,无需额外安装。

在开始菜单中找到 "PowerShell",右键点击它。

输入如下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

或者打开控制面板

点击程序

点启用或者关闭windows 功能

勾选Hyper-V

1.2 安装 WSL

因为Docker Desktop在Windows上使用了WSL 2作为默认的运行时。WSL 2提供了更好的性能和更好的集成,特别是在Windows上运行Linux容器时。所以我们需要安装WSL,在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入如下命令:

 wsl --install

然后重启计算机。

1.3 Docker Desktop 官方下载

Docker Desktop 官方下载地址: https://docs.docker.com/desktop/install/windows-install/

1.4 安装Docker Desktop

双击exe 程序,点击安装即可。

点击跳过登录

当状态栏中的鲸鱼图标保持稳定时,表明Docker Desktop正在运行,并且可以从任何终端窗口访问。

二、MacOS 安装

2.1 Docker Desktop 官方下载

Docker Desktop 官方下载地址: https://docs.docker.com/desktop/install/mac-install/

选择你的M芯片或Inter芯片

2.2 安装Docker Desktop

双击即可,将Docker 安装拖过去即可。

鲸鱼图标拖拽到 Application 文件夹即可。

三、Mac 和Windows 配置镜像加速

在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Desktop。编辑窗口内的json,填写下方加速器地址,配置加速地址为科大源:

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]

接着配置好以后我们来验证,运行如下命令:

docker pull redis 

可以看到,下载速度是很快的。

四、Linux 安装docker

首先更新系统,也可以跳过这一步.

yum update -y

安装yum工具:

yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken

更改镜像源地址:

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

更新本地镜像源:

yum makecache

最后安装docker-ce以及插件

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证是否启动成功

systemctl status docker

当出现active(running)时,即为启动成功,如图:

查看docker版本

docker --version

启动docker

systemctl start docker

设置开机自启

systemctl enable docker

五、linux 配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

新建一个文件夹:

sudo mkdir -p /etc/docker

新建一个daemon.json文件:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
EOF

重新加载文件

sudo systemctl daemon-reload

重新启动docker

sudo systemctl restart docker

拉redis镜像,速度还是非常快的:

docker pull redis

六、检查加速器是否生效

执行 $ docker info,如果从结果中看到了你配置的镜像加速仓库,说明配置成功。

七、docker 配置文件解析

Linux上配置文件的默认位置是 /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 时,DNS不仅搜索host,还会搜索host.example.com。注意:如果不设置,Docker 会默认用主机上的 /etc/resolv.conf来配置容器。
    "exec-opts": [],  // 附加到容器进程的选项
    "exec-root": "",  // 容器执行时的根路径
    "experimental": false,  // 启用实验性功能,从 v20.10 版本开始,Docker CLI 所有实验特性的命令均默认开启,无需再进行配置或设置系统环境变量。
    "features": {},  // Docker 特性配置
    "storage-driver": "",  // 存储驱动配置
    "storage-opts": [],  // 存储驱动的附加选项
    "labels": [],  // Docker主机的标签,例如定义:–label nodeName=host-121
    "live-restore": true,  // 是否启用容器自动重启
    "log-driver": "",  // 日志驱动配置
    "log-opts": {},  // 日志驱动的附加选项
    "mtu": 0,  // 容器网络的 MTU(最大传输单元)
    "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并做后台进程与客户端通讯的验证
    "swarm-default-advertise-addr": "",  // Swarm 默认通告地址
    "api-cors-header": "",  // API CORS 头部配置
    "selinux-enabled": false,  // 启用selinux支持
    "userns-remap": "",  // 用户命名空间重映射
    "group": "",  // Unix套接字的属组,仅指/var/run/docker.sock
    "cgroup-parent": "",  // Cgroup父级路径
    "default-ulimits": {  // 默认的资源限制
        "nofile": {
            "Name": "nofile",
            "Hard": 64000,
            "Soft": 64000
        }
    },
    "init": false,  // 启用初始化进程
    "init-path": "/usr/libexec/docker-init",  // 初始化进程路径
    "ipv6": false,  // 启用 IPv6 支持
    "iptables": false,  // 使用自定义iptables规则
    "ip-forward": false,  // 默认true, 启用 net.ipv4.ip_forward ,进入容器后使用sysctl -a|grepnet.ipv4.ip_forward查看
    "ip-masq": false,  // IP伪装设置
    "userland-proxy": false,  // 使用用户空间代理
    "userland-proxy-path": "/usr/libexec/docker-proxy",  // 用户空间代理路径
    "ip": "0.0.0.0",  // 监听地址
    "bridge": "",  // Docker使用的默认桥接网络
    "bip": "",  // Docker使用的默认桥接网络的IPv4地址
    "fixed-cidr": "",  // Docker使用的默认桥接网络的固定CIDR地址
    "fixed-cidr-v6": "",  // Docker使用的默认桥接网络的固定CIDR地址(IPv6)
    "default-gateway": "",  // 默认网关地址
    "default-gateway-v6": "",  // 默认IPv6网关地址
    "icc": false,  // 启用或禁用容器之间的通信
    "raw-logs": false,  // 启用或禁用原始日志流
    "allow-nondistributable-artifacts": [],  // 允许非分发制品的列表
    "registry-mirrors": [],  // 镜像加速的地址,增加后在 docker info 中可查看。
    "seccomp-profile": "",  // seccomp 配置文件路径
    "insecure-registries": [],  // 配置docker的私库地址
    "no-new-privileges": false,  // 禁止在容器内生成新的特权
    "default-runtime": "runc",  // 默认运行时
    "oom-score-adjust": -500,  // OOM分数调整
    "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 镜像加速器

7.1 国内镜像加速网站

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

镜像加速器 镜像加速器地址 专属加速器 其它加速
DaoCloud 镜像站 https://docker.m.daocloud.io Docker Hub、GCR、K8S、GHCR、Quay、NVCR 等
科大镜像站 https://docker.mirrors.ustc.edu.cn Docker Hub、GCR、Quay
阿里云 https://<your_code>.mirror.aliyuncs.com 需登录,系统分配,已经好久不更新了,一堆坑 Docker Hub
腾讯云 https://mirror.ccs.tencentyun.com 仅供内部访问 Docker Hub
Docker 镜像代理 https://dockerproxy.com Docker Hub、GCR、K8S、GHCR
百度云 https://mirror.baidubce.com Docker Hub
南京大学镜像站 https://docker.nju.edu.cn Docker Hub、GCR、GHCR、Quay、NVCR 等
上海交大镜像站 https://docker.mirrors.sjtug.sjtu.edu.cn Docker Hub、GCR 等
中科院软件所镜像站 https://mirror.iscas.ac.cn Docker Hub

7.2 测试国内 Docker Registry 可用性

可以直接查看 GitHub 仓库:Docker 镜像测试Github Action 执行结果。

如最近一次的执行结果为:

7.3 不再提供服务的镜像

某些镜像不再提供服务,添加无用的镜像加速器,会拖慢镜像拉取速度,你可以从镜像配置列表中删除它们。

7.4 自建 Docker Registry Mirror/Proxy

使用 Cloudflare Worker 项目:

https://github.com/ciiiii/cloudflare-docker-proxy

具体请参考博客:Docker 镜像库国内加速的几种方法

posted @ 2024-01-08 22:17  贾维斯Echo  阅读(632)  评论(0编辑  收藏  举报