Docker 管理工具 Portainer
Portainer 是一款免费、开源的 Docker 的图形化管理工具,其能够提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能。
# 安装 Docker
# 更新、安装必备软件
apt-get update && apt-get install -y wget vim
1
# Docker 安装
wget -qO- get.docker.com | bash
# or
curl -sSL get.docker.com | sh
1
2
3
2
3
# 查看 Docker 版本
docker -v
1
# 开机自动启动
systemctl enable docker
1
# 卸载 Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
1
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
1
2
2
# Docker-compose 安装
curl -L "https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
1
2
3
2
3
# Docker 基本命令
docker ps -a #查看运行的镜像进程
docker stop <CONTAINER ID> #停止该镜像进程
docker start <CONTAINER ID> #启动该镜像进程
docker rm <CONTAINER ID> #卸载镜像
docker images #查看当前 Docker 的镜像 IMAGE ID
docker rmi <IMAGE ID> #删除镜像
1
2
3
4
5
6
2
3
4
5
6
# 修改 Docker 配置
限制日志文件大小,防止 Docker 日志塞满硬盘
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
}
}
EOF
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
然后重启 Docker 服务
systemctl restart docker
1
# 安装 Portainer
# 查看镜像
docker search portainer
1
# 拉取镜像
docker pull portainer/portainer
1
# 启动 Portainer
docker run --name portainer --restart=always --privileged=true \
-p 8000:8000 \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /root/data/docker/portainer/data/:/data \
-v /root/data/docker/portainer/public/:/public \
-d portainer/portainer-ce:latest
1
2
3
4
5
6
7
2
3
4
5
6
7
-p 参数映射容器端口到本地 [服务器端口 : 容器内部端口]
-v 参数持久化容器目录到本地 [服务器路径 : 容器内部路径]
9000 端口为 web 管理界面端口,浏览器访问运行Portainer的Docker引擎的端口9000
-v /var/run/docker.sock:/var/run/docker.sock 默认配置 portainer 所在服务器 Docker 端点
该语句用宿主机 9000 端口关联容器中的 9000 端口,并给容器起名为 portainer。执行完该命令之后,使用该机器 IP:PORT 即可访问 Portainer
# 在 Portainer 添加其他服务器 Docker 节点
- 在需要添加到 Portainer 的服务器中安装 Docker
- 安装完成 Docker 后,修改 vim /usr/lib/systemd/system/docker.service 暴露 docker api 接口
# 命令查看 docker.service 文件所在路径
systemctl status docker.service
# 编辑 docker.service 文件
nano /lib/systemd/system/docker.service
1
2
3
4
5
2
3
4
5
修改配置项ExecStart中的值为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
1
重启 Docker 服务
# 重新加载服务配置文件
systemctl daemon-reload
# 重启 Docker 服务
systemctl restart docker
1
2
3
4
5
2
3
4
5
在 Portainer 所在服务器测试是否可连接目标服务器 Docker Api
# 格式 docker -H [目标服务器IP/公网IP]:[2375/外网IP映射的端口号] info
docker -H 0.0.0.0:2375 info
# 出现以下内容则配置成功
WARNING: API is accessible on http://0.0.0.0:2375 without encryption.
Access to the remote API is equivalent to root access on the host. Refer
to the 'Docker daemon attack surface' section in the documentation for
more information: https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
完成以上内容后即可在 Portainer 的 “端点/EndPoint” 菜单中点击 “添加端点/Add EndPoint”, 来添加目标服务器 Docker节点
上次更新: 2024/09/02, 13:59:22