飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

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

时间:2022-02-15  作者:yan7  
提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记

Portainer

Portainer 概述

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

Portainer 版本

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

portainer/portainer

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

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

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

portainer/portainer-ce

portainer/portainer-ce 是 2.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/域名:/var/run/域名
      - /volumes/portainer:/data

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

  • version:YMAL 格式版本,当前版本具有 122.X3.X,每个版本的语法都略有差异,不过差异并不大,一般语法没什么区别。 不过不同版本语法对 Docker 版本有一定要求,详细可以参考:https://域名/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-compose -f /yml/docker-compose/域名 -p portainer up -d

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

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

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

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

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

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

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

Portainer 页面

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

  • 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

Limited

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

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

Add Stack

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

  1. Web editor(直接在当前页编写配置)
  2. Upload(提供本地上传 域名 文件)
  3. Repository(提供一个配置文件的 URL 地址)
  4. Custom template 自定义模板 (2.X 版本新添加的,我也没了解)

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

Portainer API 连接方式

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

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

Docker API 需要设置 /lib/systemd/system/域名ice 文件 ExecStart 属性

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

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

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

sudo systemctl daemon-reload
sudo systemctl restart docker

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

标签:编程
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。