前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Portainer实现XSwitch Docker可视化管理

如何使用Portainer实现XSwitch Docker可视化管理

作者头像
Seven Du
发布2024-03-06 15:35:52
2271
发布2024-03-06 15:35:52
举报

Portainer是一个Docker可视化管理工具,可以对方便地对Docker镜像进行管理。

下面,我们来看一下如何在Linux上安装Portainer。

安装dockerdocker-compose

此版本基于Debian系统安装,以管理员身份root安装。

卸载系统自带的软件

代码语言:javascript
复制
apt-get remove docker docker-engine docker.io containerd runc

更新系统

代码语言:javascript
复制
apt-get update

安装插件

代码语言:javascript
复制
apt-get install apt-transport-https ca-certificates curl gnupg lsb-release gnupg2 pass -y
代码语言:javascript
复制
curl -fsSL https://download.docker.com/linux/debian/gpg |gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

使用下面的命令设置stable源

代码语言:javascript
复制
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" |tee /etc/apt/sources.list.d/docker.list > /dev/null

安装

代码语言:javascript
复制
apt-get update
apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose

启动docker

代码语言:javascript
复制
systemctl start docker
systemctl enable docker

安装 Portainer

Portainer是一个可视化的Docker操作界面,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。官方网站:https://portainer.io/

通过命令安装 Portainer

代码语言:javascript
复制
$ docker volume create portainer_data
$ docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always --log-opt max-size=1g \
-v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

如端口被占用可以自行修改,修改9001:9001,重启参数--restart=always

首次登录 Portainer

启动后,通过本地浏览器访问:http://localhost:9000, 直接进入Portainer注册用户界面。

输入12位密码后,创建用户。首次会直接登录系统。

非首次登录,会出现以下登录界面:

Portainer 操作界面

  • 登录后,点击Get Started
  • 选择local
  • 选择Stacks
  • 选择Add stacks

下载XSwitch并创建目录

到XSwitch下载安装(https://docs.xswitch.cn/installation/)可免费下载XSwitch

将解压文件env.example改名.env存放到桌面,根据服务器的网络配置修改文件.env

代码语言:javascript
复制
# xswitch-lua use env

DSN=postgresql://xui:xui@127.0.0.1/xui
SIP_PORT=7060
SIP_TLS_PORT=7061
SIP_PUBLIC_PORT=7080
SIP_PUBLIC_TLS_PORT=7081
VERTO_WS_PORT=8081
VERTO_WSS_PORT=8082
RTP_START=10000
RTP_END=20000
ESL_PORT=8021
EXT_IP=192.168.100.20
LOCAL_IP=192.168.100.20
FREESWITCH_DOMAIN=xswitch.cn
FREESWITCH_DEFAULT_PASSWORD=1234
FREESWITCH_EVENT_SOCKET_PASSWORD=1234
PKG_CONFIG_PATH=/usr/local/pg-static/lib/pkgconfig:/usr/local/freeswitch/lib/pkgconfig

# xswitch-pg use env
PGDATA=/var/lib/postgresql/data/pgdata
TZ=PRC
POSTGRES_PASSWORD=xswitch1qaz!

# xswitch-nginx use env(xswitch和xswitch-pg镜像不要此项)
HTTP_PORT=80
NGINX_PROXY=192.168.100.20

在服务器上创建目录,将配置文件按复制到目录中。

代码语言:javascript
复制
mkdir /data

将下载目录中的 Makefilextra_config文件复制到/data文件夹中。

添加xswitch-pg

打开docker-compose.yml。Name填写xswitch-pg,复制xswitch-pg内容到Web editor框中,加载.env变量。

Web editor 内容如下:

代码语言:javascript
复制
version: "3"

services:  
  xswitch-pg:
    container_name: "xswitch-pg"
    image: ccr.ccs.tencentyun.com/free/xswitch-pg:latest
    network_mode: "host"
    restart: always
    env_file: ./.env
    volumes:
      - /data/postgres:/var/lib/postgresq/data

添加完成后,显示以下图片:

添加xswitch和xswitch-nginx-xui

以上述方法分别添加xswitchxswitch-nginx-xui

代码语言:javascript
复制
version: "3"

services:
  xswitch:
    container_name: "xswitch"
    image: ccr.ccs.tencentyun.com/free/xswitch-lua-free:4.0.0
    network_mode: host
    logging:
      driver: "json-file"
      options:
        max-file: "10"
        max-size: "200m"
    restart: always
    env_file: ./.env
    ulimits: 
      core: -1
    privileged: true
    stdin_open: true
    tty: true
    volumes:
      - /data/log:/usr/local/freeswitch/log
      - /data/storage/upload:/usr/local/freeswitch/storage/upload
      - /data/storage/vosk:/usr/local/freeswitch/storage/vosk
      - /data/storage:/usr/local/freeswitch/storage
      - /data/sounds:/usr/local/freeswitch/sounds
      - /data/blocks:/usr/local/freeswitch/blocks
      - /data/xtra_config.lua:/etc/xtra/xtra_config.lua
代码语言:javascript
复制
version: "3"

services:
  xswitch-nginx-xui:
    container_name: "xswitch-nginx-xui"
    image: ccr.ccs.tencentyun.com/free/xswitch-nginx-xui:4.0.0
    network_mode: "host"
    restart: always
    env_file: ./.env
    volumes:
      - /data/storage:/usr/local/freeswitch/storage

完成上述添加,可以在Containers中查看,并查看启动状态。

使用XSwitch

经过一番精彩操作,我们终于可以看到XSwitch了。体验一下吧。通过浏览器输入http://localhost,初始账号和密码可在微信公众号回复XSwitch密码获得。

Portainer 简单操作

  • 第一红框内有容器的操作命令如:启动、停止、重启、删除等。
  • 第二个红框内的是容器的的一些快接按键,依次有日志、容器元数据信息、容器状态、登录容器。

注意事项

  • 需要注意的是在添加xswitch-pgxswitch不需要加载.envHTTP_PORTNGINX_PROXY变量。
  • 如遇到登录账号密码错误,可删除容器,重新进行添加。
  • 如果无法打开网页可以查看日志。如有80端口被占用可以自行调整端口。或将xswitch停止后重启xswitch-nginx-xui,最后将xswitch启动。
  • 缺少声音可到/data目录下,执行make soundsmake music
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 Portainer
    • 首次登录 Portainer
      • Portainer 操作界面
        • 下载XSwitch并创建目录
          • 添加xswitch-pg
            • 添加xswitch和xswitch-nginx-xui
              • 使用XSwitch
                • Portainer 简单操作
                  • 注意事项
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档