如何部署生产环境的Portainer服务?

Docker

1 部署Docker集群

如何部署Oracle Linux 10.x Docker生产集群环境?

2 部署Portainer

2.1 Portainer的基础知识

2.1.1 Portainer的简介

Portainer是一个轻量级的管理UI,可让你轻松管理Docker主机和Swarm群集

2.1.2 Portainer的作用

– 管理Docker堆栈
– 管理Docker的容器
– 管理Docker的镜像
– 管理Docker的卷
– 管理Docker的网络等

2.1.3 Portainer的兼容性

Portainer支持任何的Docker引擎

2.2 部署Portainer

2.2.1 准备镜像

In hd01

cd /data/docker/images/
docker load -i portainer-ce:2.40.0.tar
docker tag portainer/portainer-ce:2.40.0 hd01.cmdschool.org:5000/portainer/portainer-ce:2.40.0
docker push hd01.cmdschool.org:5000/portainer/portainer-ce:2.40.0
docker image rm portainer/portainer-ce:2.40.0

docker load -i portainer-agent:2.40.0.tar
docker tag portainer/agent:2.40.0 hd01.cmdschool.org:5000/portainer/agent:2.40.0
docker push hd01.cmdschool.org:5000/portainer/agent:2.40.0
docker image rm portainer/agent:2.40.0

以上命令软件包可通过以下命令获取,

docker pull portainer/portainer-ce:2.40.0
docker save portainer/portainer-ce:2.40.0 -o portainer-portainer-ce:2.40.0.tar
docker pull portainer/agent:2.4.0
docker save portainer/agent:2.4.0 -o portainer-agent:2.40.0.tar

In hd01

2.2.2 创建服务配置文件

mkdir -p /data/docker/yml/
vim /data/docker/yml/portainer-stack.yml

加入如下配置:

version: '3.6'
services:
  agent:
    image: hd01.cmdschool.org:5000/portainer/agent:2.40.0
    environment:
      # REQUIRED: Should be equal to the service name prefixed by "tasks." when
      # deployed inside an overlay network
      AGENT_CLUSTER_ADDR: tasks.agent
      # AGENT_PORT: 9001
      # LOG_LEVEL: debug
      TZ: Asia/Shanghai
    ports:
      - "9001:9001"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    logging:
      driver: "json-file"
      options:
        max-size: "20m"
        max-file: "10"
    networks:
      - agent_network
    deploy:
      mode: global
      resources:
        limits:
          cpus: '0.3'
          memory: 128M
        reservations:
          cpus: '0.1'
          memory: 64M
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 5
        window: 120s

  portainer:
    image: hd01.cmdschool.org:5000/portainer/portainer-ce:2.40.0
    environment:
      TZ: Asia/Shanghai    
    command: -H tcp://tasks.agent:9001 --tlsskipverify
    ports:
      - "9900:9000"
    volumes:
      - portainer-data:/data
    logging:
      driver: "json-file"
      options:
        max-size: "20m"
        max-file: "30"
    networks:
      - agent_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.labels.portainer-web == true]
      resources:
        limits:
          cpus: '1.0'
          memory: 512M
        reservations:
          cpus: '0.2'
          memory: 128M
      restart_policy:
        condition: any
        delay: 5s
        max_attempts: 5
        window: 120s

volumes:
  portainer-data:
    external: true
 
networks:
  agent_network:
    driver: overlay

2.2.3 标记运行节点

In hd01

docker node update --label-add portainer-web=true hd01.cmdschool.org

2.2.4 部署服务

docker stack deploy -c /data/docker/yml/portainer-stack.yml portainer

2.2.5 创建管理员账号

http://hd01.cmdschool.org:9900
注:以上登录Portainer将会提示你创建管理员账号

没有评论

发表回复

Docker
如何部署Docker MySQL 8.0?

1 基础知识 一个问题,一篇文章,一出故事。 本章将实现Docker MySQL 8.0的部署。 2 …

Docker
如何部署Docker Nginx 1.20.2?

1 前言 一个问题,一篇文章,一出故事。 本章将完成Docker Nginx的基础部署。 2 最佳实 …

Docker
如何打包Docker Nginx 1.20.2?

1 前言 一个问题,一篇文章,一出故事。 由于docker hub原版本的nginx镜像过于精简,于 …