portainer是一个docker官方推荐的轻量级的docker管理ui,只需简单的TCP连接就能实现对docker容器的全面管理和监控。

portainer 配置mysql portainer 安装_导航栏

portainer的安装

portainer安装可直接拉取官方打好的镜像,拉取步骤如下

# 搜索镜像
docker search portainer/portainer
# 拉取镜像
docker pull portainer/portainer

这样镜像就拉取下来了,部署时要注意外挂数据目录

我这里使用docker yml文件编排启动服务,外挂数据目录避免重启后配置丢失docker-portainer.yml 文件如下:

docker-portainer.yml

version: "3.4"

services:
  my-portainer:
    image: portainer/portainer
    volumes: [ '/var/run/docker.sock:/var/run/docker.sock','/data/portainer_db:/data' ]
    ports: [ "9000:9000" ]
    deploy:
      restart_policy: { condition: on-failure, delay: 5s, max_attempts: 3 }
      replicas: 1
      placement:
        constraints: [ node.role == manager ]
    networks:
      envoymesh:
        aliases: [ my-portainer.my.portainer ]

networks:
  envoymesh: { driver: overlay }

注意其中外挂目录 ‘/data/portainer_db:/data’ 将容器中的data目录外挂到本地的 /data/portainer_db 。
本地必须先创建 /data/portainer_db 目录,否则容器无法调度成功

将yml文件放置在服务器上,使用docker stack编排启动,命令如下:

docker stack deploy -c  docker-portainer.yml  --with-registry-auth portainer

这样就启动了,可以使用 docker ps 命令查看下是否成功启动。

成功启动后可看到如下容器

portainer 配置mysql portainer 安装_portainer 配置mysql_02


使用命令查看启动日志

docker service logs -f portainer_my-portainer

portainer 配置mysql portainer 安装_portainer 配置mysql_03


日志显示启动正常,因为我们的数据目录是空的,所有日志会显示没有发现数据资源

登录portainer

浏览器访问 服务器的9000端口 显示如下页面

portainer 配置mysql portainer 安装_服务器_04


在这里设置好用户名和密码,然后登陆,显示如下页面,先选择docker,连接本机上的docker服务

portainer 配置mysql portainer 安装_docker_05


之后就会进入如下页面

portainer 配置mysql portainer 安装_portainer 配置mysql_06


现在就可以点击这台机器对当前机器进行管理了

portainer 配置mysql portainer 安装_docker_07

portainer连接其他机器

portainer连接其他机器需要使用tcp协议,端口默认为2375

在目标机器上执行如下命令开放docker管理端口

注意以下命令会重启docker服务,要在服务非对外情况下使用

sed -ri "s#(^ExecStart=/usr/bin/dockerd ).*#ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock#g" /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart docker

portainer配置连接目标服务器

回到portainer页面,在左侧导航栏选择Endpoint,在打开的页面中选择docker选项

portainer 配置mysql portainer 安装_docker_08


在 Endpoint URL 及 Name 中分别填写目标服务器地址和名称

portainer 配置mysql portainer 安装_服务器_09


最后点击页面下方的Add endpoint按钮完成添加

portainer 配置mysql portainer 安装_导航栏_10


之后会弹出成功的提示并跳转到新的页面表示创建成功

portainer 配置mysql portainer 安装_docker_11


现在我们就可以使用portainer来管理新添加的docker机器了

管理新添加的机器

先点击左侧导航栏的home按钮,在新的页面中找到新添加的机器(测试机器)

portainer 配置mysql portainer 安装_portainer 配置mysql_12


点击此机器就可对其进行管理

在管理页面可对当前选定机器的栈,服务,容器,镜像,卷,网络进行管理

portainer 配置mysql portainer 安装_导航栏_13

连接本地的docker镜像仓库

在左侧导航栏中点击Registries栏目,在跳转到的新页面中点击 Add registry按钮

portainer 配置mysql portainer 安装_服务器_14


输入本地docker仓库地址,名称,用户名,密码。之后点击Add registry连接仓库

portainer 配置mysql portainer 安装_服务器_15


配置完成后如图所示

portainer 配置mysql portainer 安装_服务器_16

使用portainer拉取镜像

打开一台机器的images管理页面

portainer 配置mysql portainer 安装_docker_17


portainer 配置mysql portainer 安装_docker_18


registry下拉菜单选择刚配置好的docker仓库,image中填写要拉取的镜像路径

portainer 配置mysql portainer 安装_导航栏_19


之后点击pull the image进行拉取,成功后页面右上角会弹出成功提示语,页面下方的镜像裂变中会展示当前服务器所存储的所有镜像。

使用portainer部署服务

打开导航栏的Stacks栏目,在页面中点击Add stack按钮

portainer 配置mysql portainer 安装_portainer 配置mysql_20


在新页面中填写栈的名称,并将docker.yml文件粘贴到编辑器中或者上传到编辑器中

portainer 配置mysql portainer 安装_导航栏_21


之后滚动到页面最底部找到 Deploy the stack 按钮,点击完成发布

portainer 配置mysql portainer 安装_docker_22

发布后的服务管理

发布后的服务可直接在portainer页面进行日志查看,服务启停、删除操作,十分方便

portainer 配置mysql portainer 安装_portainer 配置mysql_23


portainer 配置mysql portainer 安装_导航栏_24