【一文搞定】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 镜像库国内加速的几种方法

本文作者:贾维斯Echo

本文链接:https://www.cnblogs.com/taoxiaoxin/p/17953365

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   贾维斯Echo  阅读(1918)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
  2. 2 稻香 稻香 (2015中国好声音第四季现场) - 周杰伦;徐林;Will Jay
404 not found - REOL
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.