portainer是一个docker官方推荐的轻量级的docker管理ui,只需简单的TCP连接就能实现对docker容器的全面管理和监控。
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 命令查看下是否成功启动。
成功启动后可看到如下容器
使用命令查看启动日志
docker service logs -f portainer_my-portainer
日志显示启动正常,因为我们的数据目录是空的,所有日志会显示没有发现数据资源
登录portainer
浏览器访问 服务器的9000端口 显示如下页面
在这里设置好用户名和密码,然后登陆,显示如下页面,先选择docker,连接本机上的docker服务
之后就会进入如下页面
现在就可以点击这台机器对当前机器进行管理了
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选项
在 Endpoint URL 及 Name 中分别填写目标服务器地址和名称
最后点击页面下方的Add endpoint按钮完成添加
之后会弹出成功的提示并跳转到新的页面表示创建成功
现在我们就可以使用portainer来管理新添加的docker机器了
管理新添加的机器
先点击左侧导航栏的home按钮,在新的页面中找到新添加的机器(测试机器)
点击此机器就可对其进行管理
在管理页面可对当前选定机器的栈,服务,容器,镜像,卷,网络进行管理
连接本地的docker镜像仓库
在左侧导航栏中点击Registries栏目,在跳转到的新页面中点击 Add registry按钮
输入本地docker仓库地址,名称,用户名,密码。之后点击Add registry连接仓库
配置完成后如图所示
使用portainer拉取镜像
打开一台机器的images管理页面
registry下拉菜单选择刚配置好的docker仓库,image中填写要拉取的镜像路径
之后点击pull the image进行拉取,成功后页面右上角会弹出成功提示语,页面下方的镜像裂变中会展示当前服务器所存储的所有镜像。
使用portainer部署服务
打开导航栏的Stacks栏目,在页面中点击Add stack按钮
在新页面中填写栈的名称,并将docker.yml文件粘贴到编辑器中或者上传到编辑器中
之后滚动到页面最底部找到 Deploy the stack 按钮,点击完成发布
发布后的服务管理
发布后的服务可直接在portainer页面进行日志查看,服务启停、删除操作,十分方便