【portainer】管理Docker容器图形化界面

        Portainer 是一个流行的开源工具,用于在 Kubernetes、Docker、Docker Swarm 和 Azure ACI 环境中管理容器。它提供了一个图形用户界面(GUI),使得用户可以通过直观的界面来执行容器管理任务,如查看容器状态、管理日志、网络、卷和技术栈等。

1. 安装部署容器

version: "3"
services:
  portainer:
    image: portainer/portainer:latest
    container_name: portainer
    ports:
    - "9000:9000"
    volumes:
    - /app/portainer/data:/data
    - /var/run/docker.sock:/var/run/docker.sock

        安装完成后访问:http:ip:port。

2. 图形化界面

        图形化界面更加直观。

        2.1 设置登录用户

         第一次访问网站会让设置用户名和密码,以后的登陆都需要这个账号:

        2.2 添加环境

          进入环境添加,将宿主机的docker添加为本地环境:

           查看portainer管理的docker环境 :

        2.3 容器状态

          存在镜像:

        运行容器:

        容器详细情况:

        点击可以查看日志:

        Console可以直接进入容器内部进行操作:

        

        出现该错误可能是portainer版本与docker版本不兼容,docker版本太高,api没有适配,正常是:

 

        Stats可以查看使用的资源情况:

        2.3 私有仓库              

        将搭建的私有仓库添加进去。

3. 测试

        搭建一主二从+三哨兵的redis集群。

        3.1 docker-compose.yml

version: '3'
services:
  # 主节点
  master:
    image: redis:6.2
    container_name: redis-master
    # 设置redis登录密码、从节点连接主节点的密码
    command: ["redis-server", "--requirepass", "123456", "--masterauth", "123456"]
    ports:
      # 对外暴露端口号为16379
      - 16379:6379
  
  # 从节点
  slave1:
    image: redis:6.2
    container_name: redis-slave-1
    ports:
      # 对外暴露端口号为16380
      - 16380:6379
    # 启动redis 从属于容器名为 redis-master 的redis
    command: ["redis-server", "--slaveof", "redis-master", "6379", "--requirepass", "123456", "--masterauth", "123456"]
  
  # 从节点2
  slave2:
    image: redis:6.2
    container_name: redis-slave-2
    ports:
      - 16381:6379
    command: ["redis-server", "--slaveof", "redis-master", "6379", "--requirepass", "123456", "--masterauth", "123456"]

        镜像拉取不了,镜像名改为:116.198.242.56:5000/redis:6.2。或者可以搭建私有仓库。参考:GitHub拉取镜像搭建私有仓库

        3.2 集群状态

          在portainer中可以看到

        说明集群搭建成功。

        测试连通:在master中set zhangsan 18,则可以在salve中get zhagnsan。

        master:

 

        salve:

        代表集群通信没有问题。

        3.3 搭建哨兵集群

          创建专属网络:隔离区

        创建一个网桥(bridge),填写名字sentinel-redis,其余默认。

        进入三个redis容器界面加入sentinel-redis网络。

 

        创建哨兵集群 :docker-compose-sentinel.yml。

version: '3'
services:
  sentinel1:
    image: redis:6.2
    # 容器名称
    container_name: redis-sentinel-1
    ports:
      # 端口映射
    - 26379:26379
    # 启动redis哨兵
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
    # 哨兵1的sentinel.conf和宿主文件位置映射
    - /app/cloud/redis/sentinel/sentinel1.conf:/usr/local/etc/redis/sentinel.conf
  sentinel2:
    image: redis:6.2
    container_name: redis-sentinel-2
    ports:
    - 26380:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
    - /app/cloud/redis/sentinel/sentinel2.conf:/usr/local/etc/redis/sentinel.conf
  sentinel3:
    image: redis:6.2
    container_name: redis-sentinel-3
    ports:
    - 26381:26379
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    volumes:
    - /app/cloud/redis/sentinel/sentinel3.conf:/usr/local/etc/redis/sentinel.conf
# 重点,将3个哨兵加入到redis-sentinel和主从节点建立联系
networks:
  sentinel-redis:
    external: true

        配置哨兵的配置文件,可以看到哨兵容器的配置文件与宿主机的文件进行了映射,只需要在/app/cloud/redis/sentinel/路径下配置相似的三个配置文件。

        只需要按需修改端口号和ip:

port 26379
dir /tmp
# master节点在bridge网络中的ip值
sentinel monitor redis-master 172.21.0.2 6379 2
# master节点密码
sentinel auth-pass redis-master 123456
sentinel down-after-milliseconds redis-master 30000
sentinel parallel-syncs redis-master 1
sentinel failover-timeout redis-master 180000
sentinel deny-scripts-reconfig yes

         文件说明:redis-master 的ip通过查看容器的详细信息可以看到。

3.4 测试集群

          配置好后重启哨兵集群,关掉redis-master容器,发现哨兵集群选取了另一个redis节点为master。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值