1 前言
Docker 提供了命令行工具来管理 Docker 的镜像和运行 Docker 的容器。管理员也可以使用图形工具来管理 Docker。目前,主流的 Docker 图形工具有 Docker Ul、Portainer 、 Shipyard 以及 Rancher。2 Docker UI
Docker UI 是一款最简单的,单机环境中的管理 Docker 的图形工具,适合初学者和小型 Docker 管理。优点:
- 支持容器管理
- 稳定性高
- 可动态显示容器间的关系图
缺点:
- 管理页面无账户体系,缺乏安全性
- 对于容器的管理缺乏权限控制,任何人都可以对容器进行一些敏感操作
- 不支持多主机和 Swarm 集群
2.1 部署 Docker UI
安装部署 Docker UI 工具需要先从镜像仓库中拉取:然后启动即可:
$ docker pull uifd/ui-for-docker
启动成功后,管理员即可访问 IP:9000 地址访问。需要注意的是,这里需要把 docker.sock 挂载出来,因为它是 Docker 守护进程默认监听的 UNIX 域套接字文件。容器中的进程可以通过它与 Docker 守护进程进行通信。
$ docker run -it -d \
--name docker-web \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
docker.io/uifd/ui-for-docker
2.2 管理容器
从 Docker UI 主界面中,管理员看到导航菜单可以对容器,容器的网络模式,镜像,以及挂载卷进行管理。 点击进入 Containers 中:3 Portainer
Portainer 是一个轻量级的图形工具。使用 Portainer 可以轻松管理不同的 Docker 环境。Portainer 的部署和使用都非常简单,它由一个可以运行在任何 Docker 引擎上的容器组成。Portainer 可以管理 Docker 的镜像、容器、数据卷和网络等。优点:
- 易用性:Portainer 可以通过简单的操作界面帮助我们方便地管理 Docker 容器。
- 多样化:Portainer 支持多个 Docker 主机和 Swarm 集群,以及 Kubernetes。
- 支持多种操作系统:Portainer 支持几乎所有的 Docker 容器和镜像,可以在 Linux、Windows 和 Mac OS X 等操作系统上运行。
- 提供了用户的登录界面,可以为用户分配某个容器
缺点:
- 功能不够完善:Portainer 的功能相对较少,不支持高级容器功能等。
3.1 部署 Portainer
从镜像仓库中拉取 Portainer:创建数据卷:
$ docker pull portainer/portainer
启动 Portainer:
$ docker volume create portainer_db
访问
$ docker run -d \
--name docker-web -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_db:/data \
portainer/portainer
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79c21674c24b portainer/portainer "/portainer" 33 seconds ago Up 31 seconds 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp docker-web
<font style="color:black;">IP:9000</font>
进入 Portainer 页面,根据引导界面进行重置密码。
3.2 管理容器
输入密码确认后进入页面。点击 Containers,依然可以看到管理员启动的几个容器。点击容器详情,也可以查看管理员的容器基础信息,同时也可以进行容器管理操作。
可以看到容器详情:
3.3 添加远程 Docker
点击左侧 Environments,进入环境管理页面,点击 Add environment。 由于管理员使用的是单机版的 Docker,所以选择第一个,点击 Start Wizard。 在远程主机上运行上面的 docker agent 命令,启动后。下方的 Environment address 输入远程主机<font style="color:black;">IP:9001</font>
端口,点击 Connect。成功连接上去后,在 Home 下就多了一个 Docker 管理项:
接着选择管理员要的 Docker 环境就可以进行远程管理了。这样的话,无需每台主机都安装 Portainer,只需要一台服务器安装后,就可以管理多台远程主机。
4 Shipyard
Shipyard 是一个集成管理 Docker 镜像、容器和镜像仓库的系统,支持跨多个主机的 Dock 容器的集群。 Shipyard 提供的主要功能包括:- 镜像管理、容器管理、节点管理等
- 节点的动态扩展
- 容器监控的可视化管理
- 在线的命令行终端
Shipyard 是一个基于 Web 的 Docker 管理工具,支持多 host,可以把多个 Docker host 上的 containers 统一管理;可以查看 images,甚至 build images;并提供 RESTful API 等等。 Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。
部署 Docker GUI 可视化管理工具
1 DockerUI 图形化管理器
1.1 DockerUI 介绍
docker.ui 简介
一款高颜值、功能强大的 Docker 可视化管理工具
DockerUI 是一款用于 Docker 容器镜像的轻量级可视化图形管理工具。
DockerUI 可用于轻松构建、管理和维护 Docker 环境。它完全开源且免费。它基于容器安装,部署方便高效。
DockerUI 通过网页界面的操作,更方便不熟悉 Docker 命令的用户更快地进入 Docker 世界。
DockerUI 的界面简单易用。它不需要记住 Docker 命令。只需下载镜像,就能立即加入并完成部署。
基于 Docker 的特性,可以在 Docker UI 中直接更新镜像的版本。在相同的设置下,通过重新部署和替换原始容器即可完成升级,并使用最新版本的功能。DockerUI 覆盖了 Docker Cli 命令行 95% 以上的命令功能。
通过 Docker UI 界面提供的可视化操作功能,可以轻松实现 Docker 环境和 Docker Swarm 集群环境的管理和维护功能。
docker.ui 功能:
- Docker 主机管理:数据卷管理,镜像管理,容器管理,构建管理,仓库配置管理,网络配置管理
- Docker Swarm集群管理:集群概要信息,节点管理,Service管理,任务管理,密码管理,配置管理
docker.ui 特性
- Docker 主机管理 数据量管理、镜像管理、容器管理、构建管理、仓库配置管理、网络配置管理
- Docker swarm 集群管理 集群配置文件信息、节点管理、服务管理、任务管理、密码管理、配置管理
- 任务安排 Docker 任务调度, Docker Swarm 任务调度
DockerUI GitHub Reference:https://github.com/gohutool/docker.ui
1.2 检查本地docker环境
1.检查系统版本
[root@docker ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core)
2.检查docker版本
[root@docker ~]# docker version Client: Docker Engine - Community Version: 20.10.22 API version: 1.41 Go version: go1.18.9 Git commit: 3a2c30b Built: Thu Dec 15 22:30:24 2022 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.22 API version: 1.41 (minimum version 1.12) Go version: go1.18.9 Git commit: 42c8b31 Built: Thu Dec 15 22:28:33 2022 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.14 GitCommit: 9ba4b250366a5ddde94bb7c9d1def331423aa323 runc: Version: 1.1.4 GitCommit: v1.1.4-0-g5fd4c4d docker-init: Version: 0.19.0 GitCommit: de40ad0
3.检查docker服务状态
检查docker服务状态,如未启动docker服务,需启动docker服务。
[root@docker ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2023-03-15 16:32:02 CST; 1 day 3h ago Docs: https://docs.docker.com Main PID: 5775 (dockerd) Tasks: 10 Memory: 118.0M CGroup: /system.slice/docker.service └─5775 /usr/bin/dockerd -H fd:// —containerd=/run/containerd/containerd.sock
1.3 下载 DockerUI 镜像
从 Dockerhub 拉取 docker.ui 镜像,版本选择 1.0.1,也可以选择最新版本latest
。
[root@docker ~]# docker pull joinsunsoft/docker.ui:1.0.1 1.0.1: Pulling from joinsunsoft/docker.ui 213ec9aee27d: Pull complete 362df81e5664: Pull complete c3f864fca442: Pull complete 5a55080a5af0: Pull complete 497ed8376dfb: Pull complete 4642bc86bdfb: Pull complete af43397a88d3: Pull complete Digest: sha256:1b70b86be661e931e112d8b59850eeac927966679c52b46064d67df2c489d7a5 Status: Downloaded newer image for joinsunsoft/docker.ui:1.0.1 docker.io/joinsunsoft/docker.ui:1.0.1
1.4 部署 DockerUI 工具
1.创建docker.ui容器
使用docker 的cli命令直接创建docker.ui容器。
docker run -d —name docker.ui —restart always -v /var/run/docker.sock:/var/run/docker.sock -p 8010:8999 joinsunsoft/docker.ui:1.0.1
2.检查docker.ui容器状态
检查docker.ui容器状态
[root@docker ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES af541cbf4f0c joinsunsoft/docker.ui:1.0.1 "./server" About a minute ago Up About a minute 0.0.0.0:8010->8999/tcp, :::8010->8999/tcp docker.ui
3.检查docker.ui容器运行日志
检查docker.ui容器运行日志
[root@docker ~]# docker logs docker.ui [2023/03/16 11:47:17 UTC 126] [INFO][gohutool.docker4go.ui] (main.initEndpointFile:155) unix Docker Endpoint is attached [2023/03/16 11:47:17 UTC 324] [INFO][gohutool.docker4go.ui] (main.main:71) Database is load. [2023/03/16 11:47:17 UTC 326] [INFO][gohutool.docker4go.ui] (main.main:91) Start docker-ui-v1.0.0 now …. [2023/03/16 11:47:17 UTC 326] [INFO][gohutool.docker4go.ui] (main.startHttpServer:319) Starting HTTP server on [::]:8999
1.5 访问 DockerUI
1.访问docker.ui首页
访问地址:http://192.168.3.157:8010/login.html 初始用户名/密码ginghan/123456
2.查看宿主机运行容器
选择左侧菜单栏,可以查看宿主机全部运行容器。
3.查看宿主机的容器镜像
可以查看宿主机本地docker容器镜像
4.查看容器网络情况
查看docker的容器网络情况
2 Dockge 图形化管理器
GitHub 星标 1.9K,一款高颜值、功能强大的自托管 docker-compose.yaml 图形化管理器
dockge 是一款高颜值、功能强大的自托管 docker-compose.yaml
图形化管理器。它支持以下特性:
- 管理
docker-compose.yaml
文件 - 可自由的创建/编辑/启动/停止/重启/删除
docker-compose.yaml
文件 - 更新 Docker 映像
- 支持交互式编辑
docker-compose.yaml
- 支持交互式网络终端
- 响应式
- 一切响应灵敏,终端输出都是实时的
- 简单易用的用户界面
- 自动将 docker run 命令转换为
docker-compose.yaml
命令 - 基于文件的结构
- Dockge 不会绑架你的编译文件,它们会像往常一样存储在你的硬盘上。你可以使用正常的用 docker compose 命令与它们交互
GitHub 网址:https://github.com/louislam/dockge