Skip to content

从Docker 到Portainer

安装 docker 和 docker compose ,并配置 docker 镜像加速,以及使用 Portainer docker web 管理面板。

安装 Docker

docker 官方提供了一键安装脚本 使用一键安装脚本是最好的选择

curl -fsSL https://get.docker.com -o get-docker.sh
# sh get-docker.sh # 执行安装

不过第一个问题就出现了,国内你甚至无法连接 docker 官方的软件库,在上面的一键安装脚本中,提供了选择第三方软件镜像的方式,只需要加上 指定参数

--mirror <Aliyun|AzureChinaCloud> # 可选阿里云和 Azure中国

所以,如果机器在国外,按照官方默认按照方式即可,如果机器在国内就加上镜像

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh # 执行安装 不使用镜像
sh get-docker.sh --mirror Aliyun # 执行安装,使用镜像,国内推荐

安装Docker Compose

请忽略此小结内容

docker compose 官网

一句话概括docker compose 的作用: Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,它允许用户用 YAML 文件来配置应用的服务,然后一条命令就可以启动、停止和管理整个应用。

docker compose 安装非常简单,在一键安装 docker 的情形下,只需要安装 docker-compose-plugin 即可

# debain 和 ubuntu ,当然如果机器在国内这个系统的软件源也要换成国内的为好
sudo apt-get update
sudo apt-get install docker-compose-plugin

镜像加速

如果机器在国外,完全不用考虑镜像加速的问题,如果机器在国内就会有这个问题。

一般情况下,有很多第三方的docker 官方镜像库加速网站,但是不足的是,并不是所有的docker 镜像都在 docker 官方镜像站,部分在GitHub (ghcr.io)部分还在Google (cgr.io) 等等

阿里云Docker镜像加速

首先考虑 docker 官方镜像,当然有很多第三方站可以选择,

这里选择 阿里云,阿里云官网教程: 阿里云官方 docker镜像加速

具体如下,

阿里云会给你一个私有连接,类似于

[系统分配前缀].mirror.aliyuncs.com    

需要将这个链接写进这个配置文件里 /etc/docker/daemon.json

sudo nano /etc/docker/daemon.json

写入下面的内容,并保存

{ 
    "registry-mirrors": ["https://1jyw93nu.mirror.aliyuncs.com"]
}

然后重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

这样对于 docker 官网的镜像加速问题就解决了

其他镜像加速

这里使用 hub-mirror 这个项目,项目介绍如下

🚀 通过 GitHub Actions 将 gcr.io、registry.k8s.io、k8s.gcr.io、quay.io、ghcr.io 等国外镜像转换为国内镜像加速下载,支持 docker 和 containerd 使用,支持 x86 和 arm 架构

具体教程 看他项目教程即可

Portainer

Portainer 是一个轻量级的管理工具,它用来帮助用户可视化地管理 Docker 环境,包括容器、镜像、网络和卷等。

一般来说,使用docker 还是 docker compose 都没办法脱离命令行窗口,Portainer 则可用使用 一个 Web 面板管理,可以直接在网页上配置docker容器 或者 写 docker compose 配置文件,很是方便

Portainer 安装更为简单,它只需要运行一个 docker 镜像即可

docker run -d --net=host --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer_data:/data portainer/portainer

-v /data/portainer_data 是持久化保存其数据的路径,当更新时保持一致,否则导致运行的容器脱离管理

多机Docker 管理

Portainer 有一个很好用的功能,即多机docker 管理, 可以通过它的 Environment management 管理来实现

我比较喜欢通过边缘代理的方法实现,因为他也是只需要部署一个 docker 容器就能实现,操作非常简单