私有化轻量级持续集成部署方案--01-环境配置(下)

提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记

Portainer

Portainer 概述

Portainer 是一个 Docker 可视化管理工具,为 Docker 提供状态提示面板、快速配置部署、数据卷管理等各种功能,基本上能满足中小型容器管理的需求。
我也感觉 Portainer 使用起来非常方便

Portainer 版本

Portainer 社区版目前具有两个镜像。portainer/portainerportainer/portainer-ce

私有化轻量级持续集成部署方案--01-环境配置(下)

portainer/portainer

portainer/portainer1.X版本(老版本)镜像。官方现在已弃用此镜像。

不过目前网上教程都是以此镜像为准。我刚开始也没注意,结果被坑到了。

此镜像版本对非 SWARM云连接的 Docker Compose 语法版本只支持到 2.X,并且创建具名Volume 挂载目录时有问题(我就被这个坑到了)。

私有化轻量级持续集成部署方案--01-环境配置(下)

portainer/portainer-ce

portainer/portainer-ce2.X 版本的新镜像。

完全支持 Docker Compose 3.X 语法版本。

Portainer 部署

在此 Portainer 通过 Docker Compose 进行部署。
Docker Compose可观性较强,并且配置文件可以保存 以后的所有部署方案都采用这种形式。

version: '3.9'

services:
  portainer:
    image: portainer/portainer-ce
    container_name: portainer
    restart: always
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /volumes/portainer:/data

以上是部署 PortainerYAML格式配置文件

  • version:YMAL 格式版本,当前版本具有 122.X3.X,每个版本的语法都略有差异,不过差异并不大,一般语法没什么区别。 不过不同版本语法对 Docker 版本有一定要求,详细可以参考:https://docs.docker.com/compose/compose-file/compose-file-v3/
  • services:容器组配置,依照 YAML 格式可配置多个容器,当前只有一个 portainer 配置。services 之间可以配置 network,依赖顺序等。
    • portainer:这是服务(Service)名称,代表一个容器(Container)
      • image:容器所使用的镜像
      • container_name:容器名称
      • restart:容器重启策略。就是 docker run 时设置 restart
      • ports:映射端口号,第一个端口号是宿主机端口号,可以设置任意一个未被使用的端口号;第二个端口号是容器中所提供的端口号,容器既然理解为一个单独的系统环境,那么就需要提供一些端口号供外部访问。Portainer 提供了端口号为 9000
      • volumes:数据卷挂载,容器作为单独的系统环境,往往需要指定宿主目录对容器内目录挂载。例如数据库应用,如果不挂载宿主目录,容器删除数据款中数据就没了。
        或者挂载容器的配置文件,这样就不需要每次都进入容器内部更新配置。
        第一个可以是一个 volume 名称 或者 宿主目录 ,当直接为宿主目录 时,容器启动时会使用 宿主目录 覆盖 容器内目录 这个之后会介绍;
        第二个是容器内目录(Portainer 数据存储在容器内 /data 目录)。

PS: 注意: Volume 挂载目录和文件时,有两种情况。目录:宿主机中可以不存在此目录,Docker 在启动容器时会自动创建目录。 文件:当挂载路径为文件时,宿主机中必须存在此文件

配置属性中还可以设置好多参数,例如:environment,之后会使用使用,不再介绍。

/var/run/docker.sock 是一个特殊的文件,有些容器需要提供此文件。

文件编写完成后上传服务器执行

docker-compose -f /yml/docker-compose/portainer.yml -p portainer up -d

私有化轻量级持续集成部署方案--01-环境配置(下)
  • -f: YAML 文件存放的地址,在此文件上传到了 /yml/docker-compose/ 目录,
  • -p: 设置当前 Docker Compose 名称
  • up: 根据配置文件重新构建服务,启动镜像。如果主机没有此镜像,默认情况会下载镜像(可以配置参数是否允许下载镜像)。当主机中没有此 portainer/portainer-ce 镜像时会进行下载,所有可能有些慢
  • -d: 设置为后台运行,与 docker run -d 参数一致

成功运行后,会自动启动容器。

并且在挂载的目下可以看到容器中的的数据

私有化轻量级持续集成部署方案--01-环境配置(下)私有化轻量级持续集成部署方案--01-环境配置(下)私有化轻量级持续集成部署方案--01-环境配置(下)

此时就可以使用访问 Portainer 页面。

注意:如果是云主机,需要启动 9000 端口访问策略,否则无法访问。

私有化轻量级持续集成部署方案--01-环境配置(下)

Portainer 第一次访问会跳转到设置管理员用户页面

私有化轻量级持续集成部署方案--01-环境配置(下)

设置完成之后,如果本地具有 Docker , 会默认连接到本地 Docker

私有化轻量级持续集成部署方案--01-环境配置(下)

Portainer 页面

进入主页面后,第一个就是自动连接的本地 Docker , 点击可以看到 Docker 各种信息

私有化轻量级持续集成部署方案--01-环境配置(下)私有化轻量级持续集成部署方案--01-环境配置(下)
  • Stack: Docker Compose 管理,对当前 Docker Compose 进行管理,并且可以直接上传 YAML 文件进行构建容器。目前只有一个Stackportainer
  • Container:Docker 容器管理,可以对所有容器进行管理设置。目前也只有一个容器portainer
  • Image: Docker 镜像管理,对当前 Docker 所有镜像进行管理,目前也只有一个镜像portainer/portainer
  • Volumes: Docker 数据卷管理,
  • Networks: Docker network 管理,目前只有默认的 4 个 Network

Stack 模块

Stack 是用来管理 Docker Compose,目前只有一个,也就是部署的 Portainer

私有化轻量级持续集成部署方案--01-环境配置(下)

Limited

未使用 Portainer可视化工具部署的 Docker Compose, 在 Portainer可视化工具内部是不允许操作的。

例如 Portainer, 在 Portainer可视化工具中 Control 属性显示为 Limited, 意思就是不允许操作这个 stack

Add Stack

点击 Add Stack 按钮就可以进行添加 Docker ComposePortainer 支持四种方式添加;

  1. Web editor(直接在当前页编写配置)
  2. Upload(提供本地上传 xxx.yml 文件)
  3. Repository(提供一个配置文件的 URL 地址)
  4. Custom template 自定义模板 (2.X 版本新添加的,我也没了解)
私有化轻量级持续集成部署方案--01-环境配置(下)

个人比较喜欢使用 Upload 在本地使用编辑器编写完成之后上传。当然也可以使用其它方式。看使用场景和个人喜好。

Portainer API 连接方式

Portainer 支持多种连接方式。 介绍一种使用 Docker API 连接方式

私有化轻量级持续集成部署方案--01-环境配置(下)

API 连接方式是使用 TCP 协议访问的 Docker API 进行通信,需要设置 Docker API,允许 Docker 被访问

Docker API 需要设置 /lib/systemd/system/docker.service 文件 ExecStart 属性

私有化轻量级持续集成部署方案--01-环境配置(下)

在此设置只允许内网访问 ,其实只允许本地 IP 访问(模拟远程连接方式)

PS:注意:设置连接主机根据实际情况设置,千万不要设置为 tcp://0.0.0.0:2375,这样极大可能会中病毒,亲测中过挖矿脚本病毒。

设置完成后需要重启 Docker 服务

sudo systemctl daemon-reload
sudo systemctl restart docker

私有化轻量级持续集成部署方案--01-环境配置(下)

现在 Portainer 就可以使用 API 连接方式

私有化轻量级持续集成部署方案--01-环境配置(下)
上一篇:Windows 下安装Docker踩过的一些坑


下一篇:Docker具体安装过程