• Docker可视化管理工具总结推荐使用Portainer


    对于初学docker的小白,一款好的可视化工具有助于快速掌握docker基本形态和概念,下面针对docker可视化工具做些总结

    ui-for-docker

    UI For Docker是一个使用Docker Remote API的web接口,目的是提供一个简洁纯净的客户端实现,为了连接和管理Docker; 该工具目前已经无人维护,建议使用下面介绍的portainer

    docker run -it -d --name docker-web --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
    

    image.png

    Portainer

    https://www.portainer.io/installation/
    是一款Docker可视化管理工具,可让您轻松构建和管理 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中的容器。

    Portainer 将管理容器的复杂性隐藏在易于使用的 UI 后面。通过消除使用 CLI、编写 YAML 或理解清单的需要,Portainer 使部署应用程序和解决问题变得如此简单,任何人都可以做到
    image.png

    Portainer-架构

    Portainer 由两个元素组成:Portainer 服务器和 Portainer 代理。两者都在您现有的容器化基础设施上作为轻量级容器运行。Portainer 代理应该部署到集群中的每个节点,并配置为向 Portainer 服务器容器报告。
    单个 Portainer 服务器将接受来自任意数量的 Portainer 代理的连接,从而提供从一个集中式界面管理多个集群的能力。为此,Portainer Server 容器需要数据持久性。Portainer 代理是无状态的,数据被传送回 Portainer 服务器容器。

    image.png

    Portainer-安装

    运行下面两条命令即可。这些命令会创建一个Portainer专用的卷,然后在8000和9000端口创建容器并运行。

    1. 基于本地容器的部署

    如果使用Portainer管理本地Docker主机的话,需要绑定/var/run/docker.sock(这里是个知识点,涉及docker 之间通信的问题,以及docker 里运行docker )

    $ docker volume create portainer_data
    $ docker run --name portainer  --restart always -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
    

    然后在浏览器打开对应地址,就会发现成功运行了。第一次运行的时候需要设置账号,然后选择要管理的Docker主机。
    image.png

    注意:portainer/portainer 是 Portainer v1.24.x 的镜像名,现在已弃用;从 2022 年 1 月开始,Portainer 2.0 的所有新版本都将在 portainer/portainer-ce 中发布

    docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.11.1
    
    1. 连接到远程容器的部署
    docker run -d -p 9000:9000 --name portainer --restart always -v portainer_data:/data portainer/portainer -H tcp://<REMOTE_HOST>:<REMOTE_PORT>
    

    PS:-H 后面的remote是你想用portainert管理的docker

    添加新的容器集群环境

    1. 本机连接方式

    只能在创建 Portainer Server 容器时添加本地环境。部署 Portainer 后,您无法添加本地环境

    第一次登陆会让选择管理的容器环境,这里可以选择本机,通过挂载/var/run/docker.sock 和docker 守护进程通信(如图所示),关于这部分知识后面会总结分享出来。

    image.png

    image.png
    之后就可以看到本机上运行的Docker容器了,点击它们还可以进行容器的管理。

    左边的条目可以管理卷、创建容器、查看主机信息等等。基本上该有的功能都有了
    image.png

    2. Remote连接方式

    通过该方式,可以将远程机器添加到Portainer服务端,统一管理远程机器上的容器环境

    将 Docker Standalone 主机连接到 Portainer 时,可以使用两种方法。您可以通过 TCP 直接连接到 Docker API,也可以在 Docker Standalone 主机上安装 Portainer 代理并通过代理连接。

    https://docs.portainer.io/v/ce-2.11/admin/environments/add/docker

    1) 通过远程访问TCP:2375端口绑定环境
    image.png
    使用Remote要求被管理的主机开启docker守护线程监听端口
    可以在/etc/docker/daemon.json中添加如下配置

    {
     "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
    }
    

    2) 通过Portainer Agent方式管理docker环境
    https://docs.portainer.io/v/ce-2.11/start/install/agent/docker/linux
    使用Agent需要在要监控的主机上创建一个portainer agent容器

    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.11.1
    

    image.png
    image.png

    3) 通过Portainer Agent方式管理k8s集群环境

    在k8s集群上执行以下命令

    curl -L https://downloads.portainer.io/portainer-agent-ce211-k8s-nodeport.yaml -o portainer-agent-k8s.yaml; kubectl apply -f portainer-agent-k8s.yaml

    image.png

    image.png

    在远程k8s集群上部署agent后,在Portainer server 上通过nodeport 或者 targetport 进行服务配置,完成k8s集群的连接配置。
    image.png

    image.png

    image.png

    LazyDocker

    https://github.com/jesseduffield/lazydocker

    LazyDocker是基于终端的一个可视化查询工具,支持键盘操作和鼠标点击。相比Portainer来说可能不那么专业,不过对于开发者来说可能反而更加好用了。因为一般开发者都是使用命令行来运行Docker,偶尔需要图形化查看的时候,就可以使用LazyDocker这个工具。

    Lazydocker 的具体特性如下:

    • 全视野查看 Docker 或 docker-compose 容器环境的状态
    • 查看容器或服务的日志
    • 查看容器指标的 ascii 图表,这样你会更像个开发者
    • 自定义图表以测量不同指标
    • 附加到容器/服务
    • 重启、删除与重新构建容器/服务
    • 查看给定镜像的祖先图层
    • 修剪占用磁盘空间的容器、镜像或卷

    image.png

    安装LazyDocker也非常简单,运行下面的命令即可。

    docker run --rm -it -v \
    /var/run/docker.sock:/var/run/docker.sock \
    -v ~/.config/lazydocker:/.config/jesseduffield/lazydocker \
    lazyteam/lazydocker
    

    当然如果发现LazyDocker挺好用,准备经常使用的话,还可以把它做成缩写添加到shell配置文件中,这样就可以将它变成一个简单的命令。例如我用的是zsh,就将下面这样添加到.zshrc文件中。以后就可以直接用lzd来调用LazyDocker了。

    echo "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v ~/.config/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc

    然后就可以在终端中查看Docker容器、镜像和卷的信息了。LazyDocker支持键盘操作和鼠标点击,直接用鼠标点击就可以查看对应信息了

    Docker Desktop

    Docker Desktop 是 Docker 官方自带的客户端。https://docs.docker.com/desktop/windows/; 如果是windows用户,想在Windows系统上运行docker容器,可以使用;

    image.png

    image.png

    小结

    • Portainer 比较适合团队使用,因为他有访问控制。
    • Lazydocker 属于简单灵活的小工具,如果你不需要复杂的功能,他们比较合适,而且会让你更有程序员的感觉。
    • Docker Desktop 是 Windows/Mac 安装 Docker 时就有的,管理功能比较简单,在需要简单的集成 Kubernetes 时可以用他。
  • 相关阅读:
    fiddler 抓https坑
    20171029机器学习之特征值选择
    20171028机器学习之线性回归过拟合问题的解决方案
    使用Matplotlib画对数函数
    对朴素贝叶斯的理解(python代码已经证明)
    解决Mac系统下matplotlib中文显示方块问题
    个人工作总结08(第二次冲刺)
    个人工作总结07(第二次冲刺)
    个人工作总结06(第二次冲刺)
    个人工作总结05(第二次冲刺)
  • 原文地址:https://www.cnblogs.com/FLY_DREAM/p/15972909.html
Copyright © 2020-2023  润新知