首页 > 系统相关 >CentOS 7下安装docker和FreeSWITCH-全过程

CentOS 7下安装docker和FreeSWITCH-全过程

时间:2022-08-29 09:58:51浏览次数:80  
标签:CentOS freeswitch yum 版本 FreeSWITCH home docker 安装

具体步骤如下:

准备工作:

提前将安装包放在CentOS系统下(提前创建好文件夹,这里为:/home/freeswitch(后转移至/home/soft-fs),所需文件如下:

 复制第1、3、4、5到本地计算机(这里路径为:D:\FreeSWITCH-docker)以备将其复制到CentOS系统中。方法如下:

1、可以用rz的方式(但是用rz传大文件会有问题(传的过程中可能会失败),所以最好用ftp工具来传)

2、ftp工具:(还有一个叫做WinSCP 的工具,基本上是一样的)

(在Xshell 7软件下点击图中的图标)

 接下来开始安装,参照对应的安装说明:

路径:D:\FreeSWITCH-docker/readMe(安装步骤).txt

第一步:安装docker,版本18以上

该步骤参考: https://www.ahfesco.com.cn/affairs/Article.asp?id=3595

如下:

1、验证你的CentOS版本是否支持Docker(Docker要求CentOS系统的内核版本高于3.10即可)

操作指令:uname -r  —— 通过 uname -r 命令查看你当前的内核版本

这里是验证是符合的:

 

即以下这两个步骤一般是不需要的:

1)Docker 要求 CentOS 系统的内核版本高于 3.10 ,验证你的CentOS 版本是否支持 Docker:
# uname -r #通过 uname -r 命令查看你当前的内核版本

2)使用 root 权限登录 Centos。确保 yum 包更新到最新。
# yum update         # 谨慎操作,会更新大部分rpm程序包的版本,非必要建议跳过;

然后,直接第3步:

3. 卸载旧版本(如果安装过旧版本的话)

#   rpm -qa|grep docker
#   yum remove docker docker-common docker-selinux docker-engine

如果有老的(低于18)版本,要先卸载掉,这里已经是docker -ce-18的版本了,不用下载了。(因为之前装过)

 

4. 安装需要的软件包

yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
# yum install -y yum-utils device-mapper-persistent-data lvm2   ,  这里直接安装就行了。

5. 设置yum源

# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 记得修改镜像源 国外镜像一般很难访问,建议配置阿里云镜像。

设置docker的yum源,不然从国外下载太慢了。

6. 可以查看所有仓库中所有docker版本,并选择特定版本安装

 yum list docker-ce --showduplicates | sort -r

查看docker的版本,不然不知道下载哪个版本。这里出现了错误,因为之前误删了yum源,导致:

 但是没关系,直接执行第7步(因为docker 18版本肯定是存在的,所以在具体的实验过程中,可以省略第6

7. 安装docker

#  yum -y  install docker-ce-18.06.3.ce

直接安装docker。

8. 启动并加入开机启动

 然后,要设置服务自启动。(不然开机不自启,服务起不来)

systemctl start docker —— 启动docker服务

systemctl enable docker —— 设置docker服务自启动

9. 验证安装是否成功

(有client和service两部分表示docker安装启动都成功了)
  docker version

10. 设置docker的的国内镜像

# yum -y install git
# service docker stop
# dockerd --registry-mirror=http://hub-mirror.c.163.com      
# service docker start

第10步这里不需要,设置docker镜像的。

 

接下来,参考:readMe(安装步骤).txt文件。

第二步:导入Freeswitch镜像文件

docker load <  freeswitch-env-docker-debian10.tar

注:先把/home/freeswitch下的文件(包括FreeSWITCH的安装包)都给移动到另一个新建的文件夹(这里是soft-fs)下,这个文件夹作为FreeSWITCH的安装路径。

输入指令:mkdir /home/soft-fs/

                  mv * /home/soft-fs/  (在/home/freeswitch文件夹下执行)

 通过:docker images —— 查看docker所有的镜像(因为之前安装过)

 这里,删除其中一个镜像(比如这里的第一个):(按ID进行删除)

docker rmi 7e633fe6600a ,出现如下错误:

  原因:正在被使用,肯定删不掉(跟进程没有关系,通过docker ps(docker ps -a 是查看所有的进程)查看进程,发现没有docker进程)

这里是因为,有一个docker容器使用了这个镜像。

需要先把这个docker容器给删掉:

docker ps -a

docker rm d43f937ceade —— 删除容器   (d43f937ceade这个ID是通过执行删除指令:docker rmi 7e633fe6600a的错误提示知道,docker ps -a也能获取)

把容器成功删除后,就可以把镜像删除了,如:

(以上(从删除镜像文件开始)问题如果在新环境下安装是没有的,因为这里之前安装过,属于历史遗留问题)

接下来就可以继续执行:

第二步:导入Freeswitch镜像文件

docker load <  freeswitch-env-docker-debian10.tar   —— 进行装载

 

 装载完成后,输入指令:docker images —— 发现删除的镜像又有了

 

第三步:把freeswitch-1.10.6-bin-for-debian10.zip 程序解压缩到 /home/freeswitch 目录下

指令:unzip -d /home/freeswitch/ freeswith-1.10.6-debian-bin-20220509.zip

解压缩后,进行查看:ll /home/freeswitch/,如下:

 这一步就成功了。

接下来,就开始创建docker容器了。

第3步就不用了。

(mariadb是老早之前用的了,现在用的是MySQL,两者都是类似的)

 

创建docker容器:

使用刚才的镜像创建docker容器:

(理解:镜像文件  ——  理解为操作系统的安装文件

                 容器    ——   理解为轻量级的虚拟机                                 所以说:使用镜像创建一个docker容器(轻量级的虚拟机))

第四步:使用新创建的镜像启动freeswitch容器

docker run -itd --name freeswitch -v /home/freeswitch:/usr/local/freeswitch --network=host  freeswitch1106-env-for-debian10   /usr/local/freeswitch/bin/freeswitch -nonat -nosql

(注意跟进实际情况增加另外两个目录映射,录音目录和tts合成目录:-v /home/data:/home/data  -v /home/Records:/home/Records)

结果如下:

 其中,因为FreeSWITCH启动时候,需要连接数据库,所以我们需要安装一个MySQL数据库:

 上图,mysql57.zip(64位的)是Linux版本的,

我们这里用Windows版本的,即mysql57.msi这个文件。

(注:按道理来说,是应该要安装Linux版本的,但是这里考虑虚拟机的内存有限,安装MySQL数据库的话可能不利于系统运行。安装Windows版本的也行,因为MySQL数据库提供的是网络服务?)

安装完成界面:

 接下里需要进行一定的配置:

 

 …………

配置好,MySQL数据库就开始启动服务(服务启动成功会弹出提示)

服务启动成功后,我们需要安装客户端连接工具; Navicate Premium

  Navicate Premium.zip 这个文件。

这个工具,需要它是注册过的,然后找它的注册表文件。(没找到!!??)

最后,见下图所选定的文件,直接打开/运行这个文件/程序:

 即可(没有提示,能用,那就先用)。

然后,在该软件内,点击“连接”(最左边)

配置为:

 点击“测试连接”,显示成功即可。(127.0.0.1???)

接着,点击刚才新建的连接,(选中,然后)右键—>“新建数据库”

配置如下:

 

 注:字符集一定要如上设置

确定后,即有:

 然后,把sql给导进来:

选定freeswitch(需要双击一下),右键—>选择“运行SQL文件”,

接着文件选择路径为之前存放FreeSWITCH安装文件的地方的:D:\FreeSWITCH-docker

选择该路径下的 freeswitch-1.10.6.sql 文件。

 选定后,点击开始即可。

(点击/选择freeswitch下的“表”,在右边空白区右键刷新即可看见导入的文件(可见其数据结构))

 (这里,需要将所用到的本地ip地址设置为固定,而不是自动获取,防止后面网络变动)

接下来,查看虚拟机的ip,为:192.168.88.7 —— 88号段的

然后,需要查看本机的ip(看有没有88号段的,这样才能互通)

指令:ipconfig  /all   ,  发现有88.1号段的: 192.168.88.1

 在虚拟机端进行ping操作:ping 192.168.88.1

发现没有ping通,ping百度也没有ping通:

 同时,在Navicate Premium(MySQL数据库客户端连接工具)中,(刚才的操作)点击连接,进行192.168.88.1的连接:

 点击“连接测试”,结果,并没有显示成功。(应该是这个地址有问题)

换一个地址,如下:192.168.67.124(这样本机肯定可以连上??)

 在Navicate Premium中进行连接操作!!(显示连接不成功,直接显示错误)

在虚拟机中,ping 192.168.67.124,结果是通的:

 接下里要做一个授权给它(对应刚才在Navicate Premium中连接不成功(192.168.67.124))。

连接不上,其实链路是通的(因为实际上ping通了),只是权限没给。

参考:https://www.ahfesco.com.cn/affairs/Article.asp?id=2085   ——  电话服务器安装Freeswitch全过程记录

 复制该条指令到 Navicate Premium 中:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'tydic2017AbcDic' WITH GRANT OPTION

在Navicate Premium 中,点击“查询”—>接着点击“新建查询”—>在查询编辑器下,粘贴刚才的指令(记得将指令中BY后面的密码改为123456)。点击运行即可。

然后,同样的操作,复制该条指令到Navicate Premium 中,运行即可:

FLUSH PRIVILEGES

  然后,再连接下192.168.67.124,显示成功了。

 

再接下来,要配置一下FreeSWITCH连接数据库的(配置文件)

虚拟机下:

第1个,要配置的文件:

vim autoload_configs/switch.conf.xml

注意:在freeswitch/conf/文件夹下。

 

 进入后,直接输入 /mariadb —— 进行搜索代码所处的位置

找到该行代码,取消它的注释即可。

!!!!!! 29:31  !!!!!!

第2个,要配置的文件:

vim autoload_configs/db.conf.xml

然后,同样取消注释:

第3个,要配置的文件:

到sip_profiles文件夹下,删除所有的ipv6文件

(在freeswitch/conf下)cd sip_profiles/

                     rm -rf *ipv6* (-rf放在后面也一样)

 第4个,配置该文件下的internal.xml文件:

vim internal.xml

/sip-ip —— 进行搜索

修改处为:

改动前:

 改动后:

 

 未改动处:

 

 同样,

第5个,配置该文件下的external.xml文件:

改动前:

改动后:

第6个,配置autoload_configs文件下的pre_load_modules.conf.xml文件:

vim ../autoload_configs/pre_load_modules.conf.xml

改动前:

改动后:(取消了一行的注释)

 

然后再次执行

使用新创建的镜像启动freeswitch容器:

docker run -itd --name freeswitch -v /home/freeswitch:/usr/local/freeswitch --network=host  freeswitch1106-env-for-debian10   /usr/local/freeswitch/bin/freeswitch -nonat -nosql

这里,因为之前已经执行了这一操作,所以会有如下提示:

 

 

直接进行下一步:

执行:docker logs freeswitch —— ??

结果如下:

 

 

然后,执行:docker start freeswitch

结果:

第五步:进入Freeswitch控制台

docker exec -it  freeswitch /usr/local/freeswitch/bin/fs_cli

结果:成功进入!!!

以上为安装的全过程。

 

出现的一些问题:

1.退出系统后,再次执行:docker exec -it  freeswitch /usr/local/freeswitch/bin/fs_cli

 

那就重新:

docker logs freeswitch

docker start freeswitch

然后,再次执行即可。

 

标签:CentOS,freeswitch,yum,版本,FreeSWITCH,home,docker,安装
From: https://www.cnblogs.com/zhou-lz/p/16634837.html

相关文章

  • FastApi项目部署到docker
    编写一个Dockerfile#指定构建的基础镜像来源FROMpython:3.9#作者信息[email protected]#设置工作区间WORKDIR/opt/code#设置环境变量......
  • 22年8月份redis、docker笔记
    redis docker基础   ......
  • (防坑)Alphafold 非docker 安装指南(续0.1)
    集群安装又有新报错解决如下:1、ModuleNotFoundError:Nomodulenamed'pdbfixer'解决:condainstall-cconda-forgepdbfixer2、ModuleNotFoundError:Nomodulename......
  • docker中asp.netcore启用https
    1、dotnetdev-certshttps-ep$env:USERPROFILE\.aspnet\https\aspnetapp.pfx-p1232、dotnetdev-certshttps--trust3、dockerrun--rm-it-p80:80-p44394:443......
  • iptables 控制docker端口开放范围
    对于类似dockerrun-d-p80:80shaowenchen/demo-whoami运行的服务,需要在DOCKER-USER链中添加规则。Docker会将iptables规则添加到DOCKER链中,如果需要在Docke......
  • c++ :虚拟机centos7+vscode
    c++:虚拟机centos7+vscodegcc、g++、make查看是否安装成功$gcc--version$g++--version$make--version哪个没有,就yuminstallgcc-c++/yuminstallgcc/yum......
  • Asp.Net Core 项目部署Centos中,httpClient 请求Https报证书错误的系列问题
    参考自https://www.cnblogs.com/leoxjy/p/10201046.html#5095270Centos报这个问题,Asp.NetCore3.1HttpClient请求Https报错的SSL证书异常的问题,请使用以下方法解决......
  • 一键部署openGauss2.1.0[CentOS 7.6] 在centos7.6上安装opengauss数据库
    https://mp.weixin.qq.com/s/fRZ-p9TJOLfiEaGYZIAs6w教程的链接里面,安装Python的时候可以不完全按照教程里面的步骤,最重要的最重要的事情是虚拟机的内存要4G以上,磁盘大小......
  • docker
    1、两种镜像(包)使用方式?基础镜像+APP包(TB)(基础镜像+APP包)=>镜像哪个好,当应用比较多时,当然是前者好了?不然哪里放的下那么多镜像。2、docker服务起不起来?......
  • centos安装maven
    1.下载Maven的安装包apache下载2.解压安装包在CentOS操作系统中新建目录并上传安装压缩包:cd/usr/localmkdirmaven使用命令对压缩包进行解压:tar-zxfapache-maven-......