Docker安装

一、Ubuntu安装Docker
1. 系统要求与准备
注意:本文档以 Ubuntu 22.04 LTS 为例进行说明。
在安装 Docker 之前,请确保你的系统满足以下要求:
- 操作系统:Ubuntu 20.04 或更高版本(推荐使用 LTS 版本)
- 内核版本:3.10 或更高(可以通过 uname -r 查看)
- 用户权限:具有 sudo 权限
2. 更新系统软件包
首先,确保你的系统软件包列表是最新的
bash
<span class="token function">sudo</span> <span class="token function">apt-get</span> update
3. 安装必要的依赖工具
安装必要的依赖工具,并设置阿里加速源
bash
<span class="token comment"># 1.安装必要的一些系统工具</span>
<span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> ca-certificates <span class="token function">curl</span> gnupg <span class="token parameter variable">-y</span>
<span class="token comment"># 2.信任 Docker 的 GPG 公钥</span>
<span class="token function">sudo</span> <span class="token function">install</span> <span class="token parameter variable">-m</span> 0755 <span class="token parameter variable">-d</span> /etc/apt/keyrings
<span class="token function">curl</span> <span class="token parameter variable">-fsSL</span> https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg <span class="token operator">|</span> <span class="token function">sudo</span> gpg <span class="token parameter variable">--dearmor</span> <span class="token parameter variable">-o</span> /etc/apt/keyrings/docker.gpg
<span class="token function">sudo</span> <span class="token function">chmod</span> a+r /etc/apt/keyrings/docker.gpg
<span class="token comment"># 3.写入软件源信息</span>
<span class="token builtin class-name">echo</span> <span class="token punctuation">\</span>
<span class="token string">"deb [arch=<span class="token variable"><span class="token variable">$(</span>dpkg --print-architecture<span class="token variable">)</span></span> signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
"</span><span class="token operator"><</span>span <span class="token assign-left variable">class</span><span class="token operator">=</span><span class="token string">"katex-error"</span> <span class="token assign-left variable">title</span><span class="token operator">=</span><span class="token string">"ParseError: KaTeX parse error: Expected &#x27;EOF&#x27;, got &#x27;&amp;&#x27; at position 20: …etc/os-release &amp;̲&amp; echo &quot;"</span> <span class="token assign-left variable">style</span><span class="token operator">=</span><span class="token string">"color:#cc0000"</span><span class="token operator">></span><span class="token punctuation">(</span><span class="token builtin class-name">.</span> /etc/os-release <span class="token operator">&</span>amp<span class="token punctuation">;</span><span class="token operator">&</span>amp<span class="token punctuation">;</span> <span class="token builtin class-name">echo</span> <span class="token operator">&</span>quot<span class="token punctuation">;</span><span class="token operator"><</span>/span<span class="token operator">></span>VERSION_CODENAME<span class="token string">")"</span> stable" <span class="token operator">|</span> <span class="token punctuation">\</span>
<span class="token function">sudo</span> <span class="token function">tee</span> /etc/apt/sources.list.d/docker.list <span class="token operator">></span> /dev/null
<span class="token comment"># 4.更新软件源列表</span>
<span class="token function">sudo</span> <span class="token function">apt-get</span> update
4. 安装Docker
bash
<span class="token comment"># 4.安装Docker</span>
<span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin <span class="token parameter variable">-y</span>
<span class="token comment"># (扩展)安装指定版本Docker</span>
<span class="token comment"># 1.查找Docker-CE的版本:</span>
<span class="token function">apt-cache</span> madison docker-ce
<span class="token comment"># docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages</span>
<span class="token comment"># docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages</span>
<span class="token comment"># 2.安装指定版本Docker</span>
<span class="token function">apt-get</span> <span class="token parameter variable">-y</span> <span class="token function">install</span> docker-ce<span class="token operator">=</span><span class="token punctuation">[</span>VERSION<span class="token punctuation">]</span>
5. 启动docker并设置开机自启
bash
<span class="token function">sudo</span> systemctl <span class="token builtin class-name">enable</span> <span class="token function">docker</span>
<span class="token function">sudo</span> systemctl start <span class="token function">docker</span>
6. 验证docker安装成功
bash
<span class="token function">docker</span> <span class="token parameter variable">-v</span>
<span class="token comment"># Docker version 28.3.1, build 38b7060</span>
二、Windows安装Docker

官网下载安装包,安装完成后,打开 Docker Desktop,点击启动按钮,等待 Docker 启动完成。
三、二进制安装Docker
下载地址:https://download.docker.com/linux/static/stable/
选择您的硬件平台,然后下载.tgz与要安装的Docker Engine相关的文件。
bash
<span class="token comment"># 1.解压docker文件</span>
<span class="token function">tar</span> <span class="token parameter variable">-zxvf</span> docker-28.3.1.tgz
<span class="token comment"># 2.将docker目录下所有文件移动到/usr/bin目录下</span>
<span class="token function">mv</span> docker/* /usr/bin/
<span class="token comment"># 3.创建 containerd.service 文件</span>
<span class="token function">cat</span> <span class="token operator">></span>/etc/systemd/system/containerd.service <span class="token operator"><<</span><span class="token string">EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target
[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=1048576
TasksMax=infinity
OOMScoreAdjust=-999
[Install]
WantedBy=multi-user.target
EOF</span>
<span class="token comment"># 4.创建 docker.socket 文件</span>
<span class="token function">cat</span> <span class="token operator">></span> /etc/systemd/system/docker.socket <span class="token operator"><<</span><span class="token string">EOF
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
[Install]
WantedBy=sockets.target
EOF</span>
<span class="token comment"># 5.创建 docker.service 文件</span>
<span class="token function">cat</span> <span class="token operator">></span> /etc/systemd/system/docker.service <span class="token operator"><<</span><span class="token string">EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP \<span class="token variable">$MAINPID</span>
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target
EOF</span>
<span class="token comment"># 6.启动docker并设置开机自启</span>
systemctl daemon-reload
systemctl <span class="token builtin class-name">enable</span> <span class="token parameter variable">--now</span> containerd.service
systemctl <span class="token builtin class-name">enable</span> <span class="token parameter variable">--now</span> docker.socket
systemctl <span class="token builtin class-name">enable</span> <span class="token parameter variable">--now</span> docker.service
四、一键脚本安装Docker
bash
<span class="token function">curl</span> <span class="token parameter variable">-s</span> https://cnb.cool/dadong.cnb/cloud/lfs/-/git/raw/main/docker/install-docker.sh <span class="token operator">|</span> <span class="token function">bash</span>
五、Docker镜像加速
镜像加速器可以加速 Docker 镜像的下载,从而提高镜像的拉取速度。
找到Docker 的配置文件,通常在 /etc/docker/daemon.json 中,如果没有该文件,则创建一个。
bash
<span class="token comment"># 1.创建docker目录</span>
<span class="token function">sudo</span> <span class="token function">mkdir</span> <span class="token parameter variable">-p</span> /etc/docker
<span class="token comment"># 2.写入加速器地址</span>
<span class="token function">sudo</span> <span class="token function">tee</span> /etc/docker/daemon.json <span class="token operator"><<</span><span class="token string">EOF
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
EOF</span>
<span class="token comment"># 3.重启docker</span>
<span class="token function">sudo</span> systemctl daemon-reload
<span class="token function">sudo</span> systemctl restart <span class="token function">docker</span>