freeswitch的docker构建过程
文章图片
概述
Docker是一个开源的应用容器引擎,可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,并在任何安装有Docker的机器上运行。
Docker 使你能够将应用程序与基础架构分开,从而可以快速交付软件。
借助 Docker,你可以与管理应用程序相同的方式来管理基础架构。
通过利用 Docker 的方法来快速交付,测试和部署代码,你可以大大减少编写代码和在生产环境中运行代码之间的延迟。
本文的目的是了解最基本的docker构建过程,以便掌握的docker基本知识和原理,暂不涉及dockerfile、compose、集群等信息。
开发环境
centos:CentOS release 7.0 (Final)或以上版本
freeswitch:v1.8.7
GCC:4.8.5
安装docker
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y install docker-cesystemctl start docker
docker常用命令
docker versiondocker imagesdocker psdocker container ls
构建freeswitch的docker镜像 拉取最新的centos镜像
docker pull centos:centos7
查看
docker images
运行容器
docker run -itd --name centos7-test centos:centos7
通过exec命令进入centos容器
docker exec -it centos7-test /bin/bash
以下命令在dockers容器中运行
yum刷新
yum makecacheyum update
下载freeswitch1.8.7开发库源码
yum install gitgit clone -b v1.8 https://github.com/signalwire/freeswitch.git freeswitch-1.8.7cdfreeswitch-1.8.7chmod 777 * -Rsh support-d/prereq.sh./bootstrap.sh -j./configure --enable-portable-binary --with-gnu-ld --with-python --with-erlang --with-openssl --enable-core-odbc-support --enable-zrtpmakemake install
修改 /usr/local/freeswitch/conf/autoload_configs/switch.conf.xml
"rtp-start-port" value="https://www.it610.com/article/10000"/>"rtp-end-port" value="https://www.it610.com/article/12000"/>
退出容器
exit
以下命令在docker宿主机运行
更新镜像文件
docker commit -m="fs1.8.7 register" -a="zr" centos7-testzr/centos7-freeswitch1.8.7
启动注册容器
docker run -itd -p 192.168.0.152:5060:5060/udp -p 192.168.0.152:10000-12000:10000-12000/udp --name centos7-reg zr/centos7-freeswitch1.8.7 /usr/local/freeswitch/bin/freeswitch -nonat
测试 使用eyebean注册测试。
分别注册1001和1002用户。
使用1001拨打1002,可以呼通,1002可以正常接听。
遗留问题 媒体流有问题,双方没有声音。
挂机信令也有问题,无法送达对方。
初步判断是fs的local地址未设置造成。
另外,构建完成的docker镜像比较大,在网络上传输会比较慢,后期可以通过一些镜像瘦身的技术降低文件大小,使得发布包更加好用。
空空如常
【freeswitch的docker构建过程】求真得真
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- Docker应用:容器间通信与Mariadb数据库主从复制