教你在云服务器上部署 docker(Ubuntu版本)

教你在云服务器上部署 docker(Ubuntu版本)

部署 docker(Ubuntu版本)

文章目录

  • 部署 docker(Ubuntu版本)
  • 1. 操作系统准备
  • 2. 准备工作
    • 2.1 检查版本
    • 2.2 检查 CPU
    • 2.3 检查是否 docker 曾经安装过
    • 2.4 卸载 docker (确定需要卸载,再执行)
      • 卸载旧版本:
      • 卸载历史版本:
  • 3. 安装 docker
    • 3.1 配置 Docker 下载源(Ubuntu)
    • 3.2 安装 docker 组件
    • 3.3 检查 docker
    • 3.4 自动启动配置
  • 4. 检测 docker 服务是否正常
    • 4.1 安装成功界面
    • 4.2 异常结果(大多数情况):
      • 解决方法:配置 Docker 镜像加速器
  • 5. 退出 docker 服务
    • 操作步骤
    • 重新启动 docker容器 & docker服务
  • 6. 结尾:

云服务器,或者是通过虚拟机(VMware Workstation Pro)的Linux系统,都可以通过这个博客,安装 docker。

1. 操作系统准备

建议是 Ubuntu 20.04 (LTS) 往上走的,当然,一般购买的云服务器,都是 Ubuntu 最新版本的

虚拟机(VMware Workstation Pro)的Linux系统,也建议是 Ubuntu 20.04 (LTS) 往上走的

2. 准备工作

2.1 检查版本

使用 Xshell 连接好云服务器之后,输入指令:cat /etc/*release*

2.2 检查 CPU

确定 CPU,可以看到我们的是 X86_64,是支持的,如果是 arm 一般会显示 aarch64

输入指令:uname -a

2.3 检查是否 docker 曾经安装过

输入指令:docker version

如果是输出这样的,证明你没有安装过,不需要再执行 1.1.4 标题的卸载操作

如果是输出下面这种,说明你安装过,需要执行卸载命令,重新安装一下最新的

Client: Version: 29.0.0 ... Server: Engine: Version: 29.0.0 ...

2.4 卸载 docker (确定需要卸载,再执行)

卸载旧版本,如果是新购买的云服务器是没有的,比如输入 docker 并没有这个命令,就不需要卸载。

卸载旧版本:

输入指令:sudo apt-get remove docker docker-engine docker.io containerd runc

卸载历史版本:

输入指令:

#卸载软件sudoapt-getpurge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras-y#删除目录sudorm-rf/var/lib/dockersudorm-rf/var/lib/containerd

卸载软件的指令有点长,怕你复制之后会截断,我就给你复制出来:sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -y


到这里,我们就卸载好 docker 了。可以开始重新安装 docker 了。

3. 安装 docker

3.1 配置 Docker 下载源(Ubuntu)

  1. 安装 curl
sudoaptupdatesudoaptinstall-ycurl

  1. 创建 GPG Key 存放目录
sudomkdir-m0755-p/etc/apt/keyrings

这个 GPG Key,相当于是一个签名,需要下载这个签名,然后根据这个签名,才可以下载 Docker

这个也是处于安全考虑的


  1. 下载 Docker 官方 GPG Key

输入指令:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg


  1. 添加 Docker 官方软件源
echo\"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release-cs)stable"|sudotee/etc/apt/sources.list.d/docker.list>/dev/null

我们可以查看这个文件夹下,存放了什么

指令:cat /etc/apt/sources.list.d/docker.list

输出的结果是:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

这些文件表示当前 Docker 软件源配置为:

  • 架构:amd64
  • GPG Key:/etc/apt/keyrings/docker.gpg
  • 软件源地址:https://download.docker.com/linux/ubuntu
  • Ubuntu 版本:jammy(Ubuntu 21.04)
  • 软件源分支:stable

  1. 更新软件源
sudoaptupdate

更新软件源,是因为我们第四步,已经 添加了Docker官方软件源 了。

3.2 安装 docker 组件

输入指令:

sudoapt-getinstalldocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin-y

这条指令下载的东西有:

软件包作用是否必须
docker-ceDocker Engine(Docker 引擎),负责创建、运行、停止容器✅ 必须
docker-ce-cliDocker 命令行工具,例如docker rundocker ps✅ 必须
containerd.io容器运行时,真正负责创建和管理容器✅ 必须
docker-buildx-pluginDocker Buildx 插件,用于增强镜像构建能力⭐ 推荐
docker-compose-pluginDocker Compose 插件,用于管理多个容器⭐ 推荐

如果你的云服务器版本比较新,可能会出现这个界面:


这个界面不是 Docker 安装报错,不用紧张。它是 Linux 在安装/更新软件时弹出来的一个服务重启确认界面

那么,你的下一步操作是:
Tab→ 选中<Ok>→ 按Enter即可。

如果你的界面长这样:

说明你的 docker 安装好了。

3.3 检查 docker

输入指令:docker --version

如果输出结果是这样的:

root@你自己的云服务器名称:~# docker --version Docker version 29.6.2, build dfc4efb

说明安装成功了。

另外还有两个指令能检测:

# 查看 Client / Server 版本 docker version # 查看 Docker 运行状态 docker info

3.4 自动启动配置

下面的指令,一条一条的执行

#配置加载sudosystemctl daemon-reload#启动服务sudosystemctl startdocker#开启启动sudosystemctlenabledocker#查看服务状态sudosystemctl statusdocker

如果上述指令没有出现报错,且出现这个页面:

说明 docker 安装成功,服务也启动起来了,可以使用 docker 了。

4. 检测 docker 服务是否正常

4.1 安装成功界面

执行命令:

sudodockerrun hello-world

如果界面是这样的:

说明我们的 docker 已经完全安装完成,后续可以使用了

4.2 异常结果(大多数情况):

如果是出现这样的结果:

root@iZwz9gkais4sddfp76izy7Z:~# sudo docker run hello-world Unable to find image 'hello-world:latest' locally docker: Error response from daemon: failed to resolve reference "docker.io/library/hello-world:latest": failed to do request: Head "https://registry-1.docker.io/v2/library/hello-world/manifests/latest": dial tcp 174.37.243.85:443: i/o timeout Run 'docker run --help' for more information

这是因为,服务器访问 Docker Hub 网络不通或者很慢

这种情况,是国内最常见的问题。

解决方法:配置 Docker 镜像加速器

编辑配置文件:

sudo mkdir -p /etc/docker sudo nano /etc/docker/daemon.json

写入:

{ "registry-mirrors": [ "https://docker.1ms.run" ] }

输入好之后,跟着我按:

  1. Ctrl + O

    底部会出现类似:

    File Name to Write: /etc/docker/daemon.json
  2. Enter

    即可保存

  3. Ctrl + X

    退出编辑界面

保存后执行:

sudo systemctl daemon-reload sudo systemctl restart docker

然后再试:

docker run hello-world

最后,出现这个界面:

说明我们的 docker 已经完全安装完成,后续可以使用了

5. 退出 docker 服务

操作步骤

  1. 停止 compose 项目(优雅关闭容器)
docker compose -p bite_wear -f docker-compose-mid.yml down

这个命令会停止并删除容器,数据卷的数据不会丢,后续可以重新 up 起来。

  1. 关闭整个 docker 服务
systemctl stop docker

此时 docker 完全停止,容器全部不运行,释放内存。

重新启动 docker容器 & docker服务

# 启动docker服务systemctl startdocker# 重新拉起容器dockercompose-pbite_wear-fdocker-compose-mid.yml up-d

6. 结尾:

最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢!