使用Portainer来管理并编排Docker容器

概述

本篇文章给掘友们介绍使用轻量级 Docker 和 Kubernetes 可视化管理工具------------Portainer。

Portainer 是一个轻量级的开源管理工具,专门用于简化和可视化 Docker 和 Kubernetes 等容器化平台的操作和管理。它为开发者和运维人员提供了一个用户友好的图形化界面,通过 Web 浏览器访问,可轻松管理容器、镜像、网络、卷和堆栈等资源,而无需频繁使用命令行工具。

使用Docker安装Portainer

我们使用 Docker Compose 快速部署 Portainer,编写 docker-compose.yml 文件如下:

yaml 复制代码
version: '3.8'
services:
  portainer:
    image: portainer/portainer-ce
    container_name: portainer
    restart: always
    ports:
      - "8000:8000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./portainer_data:/data

volumes:
  portainer_data:

首先要解决的一个问题就是 Docker 的镜像拉取问题,看这篇文章:Docker镜像加速解决方案

编写完成之后,输入 docker compose up -d 命令启动容器。

打开浏览器输入地址可以看到如下页面:

第一次进入的话会有一个提示设置密码的界面。

点击 Live connect 按钮就可以连接部署在服务器上的 Docker 服务进程了。

部署Redis集群

下面演示一下如何使用 Portainer 界面实现类似于 Docker Compose 的效果。

堆栈(Stack)是一组服务,通常与一个应用程序或用途相关。例如,WordPress 堆栈定义可能包括 Web 服务器容器(例如 nginx)和数据库容器(例如 MySQL)。

首先点击左侧 Stacks 菜单,然后点击 Add stack 按钮:

然后可以看到 4 种 Docker 容器编排方式,分别是:

  • Web editor:直接在线编写。
  • Upload:上传你自己编写的 docker-compose.yml 文件。
  • Repository:输入远程仓库地址。
  • Custome Template:自定义模板。

选择 Web editor 即可,输入以下内容:

yaml 复制代码
version: '3'

services:
  redis-master-1:
    image: redis:6.0
    ports:
      - "7001:6379"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes"]
    volumes:
      - redis-master-1-data:/data

  redis-master-2:
    image: redis:6.0
    ports:
      - "7002:6379"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes"]
    volumes:
      - redis-master-2-data:/data

  redis-master-3:
    image: redis:6.0
    ports:
      - "7003:6379"
    command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes"]
    volumes:
      - redis-master-3-data:/data

  redis-slave-1:
    image: redis:6.0
    ports:
      - "7004:6379"
    command: ["redis-server", "--slaveof", "redis-master-1", "6379", "--appendonly", "yes"]
    volumes:
      - redis-slave-1-data:/data

  redis-slave-2:
    image: redis:6.0
    ports:
      - "7005:6379"
    command: ["redis-server", "--slaveof", "redis-master-2", "6379", "--appendonly", "yes"]
    volumes:
      - redis-slave-2-data:/data

  redis-slave-3:
    image: redis:6.0
    ports:
      - "7006:6379"
    command: ["redis-server", "--slaveof", "redis-master-3", "6379", "--appendonly", "yes"]
    volumes:
      - redis-slave-3-data:/data

volumes:
  redis-master-1-data:
  redis-master-2-data:
  redis-master-3-data:
  redis-slave-1-data:
  redis-slave-2-data:
  redis-slave-3-data:

最后点击 Deploy the stack 按钮完成部署。

可以看到 Stacks 列表多了一条数据:

点击 redis-cluster 这一条进入之后可以看到部署的容器正常运行中:

希望本篇文章可以帮助到你,进一步熟悉云原生技术。

相关推荐
老兵发新帖3 小时前
Kubernetes架构解析
容器·架构·kubernetes
字节跳动开源3 小时前
Gödel Rescheduler:适用于云原生系统的全局最优重调度框架
云原生
容器魔方21 小时前
Volcano v1.12 正式发布!驱动云原生AI与批量计算向智能高效新阶段演进
云原生·容器·云计算
Johny_Zhao1 天前
CentOS Stream 8 高可用 Kuboard 部署方案
linux·网络·python·网络安全·docker·信息安全·kubernetes·云计算·shell·yum源·系统运维·kuboard
在未来等你1 天前
互联网大厂Java求职面试:云原生架构与微服务设计中的复杂挑战
java·微服务·ai·云原生·秒杀系统·rag·分布式系统
爱瑞瑞1 天前
云原生学习笔记(八) Docker 实战:宿主机与容器的信息交互与共享策略
docker·容器
程序员老乔1 天前
【Dify系列】【一】【安装与部署】【ubuntu22.04安装docker部署dify1.4.2】
运维·docker·容器
sealaugh321 天前
docker(学习笔记第一课) 使用nginx +https + wordpress
笔记·学习·docker
爱瑞瑞1 天前
云原生学习笔记(七) Docker 实战:使用 Docker 快速构建 Oracle 12c 容器
docker·oracle
exe4521 天前
使用docker中的ollama
运维·docker·容器