Add Docker’s official GPG key:

  1. 更新包管理器
sudo apt update
  1. 安装必要的基础包
sudo apt install ca-certificates curl
  1. 创建密钥环目录
sudo install -m 0755 -d /etc/apt/keyrings
  1. 下载 Docker 官方 GPG 公钥
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

可能会出现Unable to establish SSL connection,则从其它源下载,如阿里云镜像源。

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o gpg

再移动到正确位置。

sudo mv gpg /etc/apt/keyrings/docker.asc
  1. 设置密钥文件权限
sudo chmod a+r /etc/apt/keyrings/docker.asc

Add the repository to Apt sources:

  1. 为 Ubuntu 系统添加 Docker 的官方 APT 软件源
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
  1. 再次更新
sudo apt update
  1. 安装docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 查看状态
sudo systemctl status docker
  1. 测试
    拉取镜像。
sudo docker pull hello-world

若失败,则更换源。下面的代码会覆盖原文件内容,如docker日志轮转配置。

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF

或者使用下面的内容,添加了docker日志的轮转配置。

{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "4.5m",
        "max-file": "3"
    },
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}

并更新状态。

sudo systemctl daemon-reload
sudo systemctl restart docker

重新拉取,并部署sudo docker run hello-world。

管理UI:

主节点部署管理服务

  1. 下载镜像portainer
sudo docker pull portainer/portainer
  1. 部署需要的数据库(可跳过,后续命令会自动创建)
sudo docker volume create portainer_data
  1. 部署服务
sudo docker run -d -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -e PORTAINER_AUTH_TIMEOUT=60 portainer/portainer:latest

-v /var/run/docker.sock:/var/run/docker.sock,这是 Docker 的"控制面板"接口文件,相当于把主机的 Docker 控制权交给了容器。-v portainer_data:/data,将卷portainer_data挂载在容器内的/data目录上。-e PORTAINER_AUTH_TIMEOUT=60是一个环境变量,它专门用于配置 Portainer 的安全初始化超时时间。

从节点部署代管理服务

sudo docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.16.2

主节点导入从节点的代理,进行管理

在这里插入图片描述
Name随便写,address为从节点ip:9001。
在这里插入图片描述

更多推荐