Is anyone actually running Kurento in Docker?

3,962 views
Skip to first unread message

Nolan Darilek

unread,
Jan 15, 2015, 6:20:09 PM1/15/15
to kur...@googlegroups.com
I know there's an official image, but is anyone actually using this
successfully to route calls?

I ask because, based on my research and knowledge about how these types
of services work (I.e. SIP) they basically need to have many/all UDP
ports open. Unfortunately, Docker doesn't seem to support publishing
port ranges. The Dockerfile EXPOSE directive only exposes one port at a
time. The -e option to "docker run" appears to accept ranges, but -p
doesn't, so you can't publish those ranges to your external interface.
So, unless I'm missing something, I can happily expose a range of UDP
ports for host-only access, but I can't publish them externally.

Am I missing something? I suppose I can deploy a separate Ubuntu server
specifically for Kurento, then selectively route traffic to the web
socket port from my app, but it'd be nice if I can run it in a Docker
container like everything else, then publish all required UDP ports to
the external world.

Javier Lopez Fernandez

unread,
Jan 16, 2015, 7:19:21 AM1/16/15
to kur...@googlegroups.com
Docker image is for test purposes and not officially supported. We are also experience problems with docker hub that have been already reported to docker team.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Javier Lopez Fernandez





Nolan Darilek

unread,
Jan 16, 2015, 7:36:26 AM1/16/15
to kur...@googlegroups.com
Cool, to answer some of my own questions, it looks like running the
container with:

--net=host

ensures that Kurento can bind UDP ports on the host without each needing
to be published. I had issues hitting the web socket server on the host
IP but this was likely due to firewall rules/5.0.4 segfaults. --net=host
certainly opens up some security issues but it may be the only way to
run services that need a wide range of UDP ports.

Randall Bennett

unread,
Jul 8, 2015, 4:47:11 PM7/8/15
to kur...@googlegroups.com, no...@thewordnerd.info
So do you still use kurento with docker?

vi...@opentest.co

unread,
Feb 5, 2016, 7:37:38 PM2/5/16
to kurento, no...@thewordnerd.info
Was not able to get Kurento working with Docker either. Tried both the development and stable containers. I tried running the kurento-hello-world JS example from both the host machine as well as serving the assets from within the docker container running the media server, but I was not able to connect to the websocket. I kept getting

"WebSocket connection to 'wss://192.168.99.100:8888/kurento' failed: Error in connection establishment: net::ERR_CONNECTION_CLOSED"

Where "192.168.99.100" is the IP of the Docker machine VM. I was successfully getting an INTERNAL SERVER ERROR when curling against the "/kurento" endpoint as suggested during the installation process, so I think it's running correctly (can also see the logs via "docker logs -f kms". This is very unfortunate - I'm not sure how I'm supposed to test Kurento locally without just running the whole stack (including my backend stack) on a VM. :-(

Ivan Gracia

unread,
Feb 7, 2016, 1:19:50 PM2/7/16
to Kurento Public, no...@thewordnerd.info
We run KMS on docker, no issues. I guess it's something with your Docker configuration.

Ivan Gracia



--

AlohaTech

unread,
Mar 16, 2016, 6:54:27 AM3/16/16
to kurento, no...@thewordnerd.info
Hello Guys,

I want to run simple nodejs hello world example using docker on CentOS7. Could you please give me some suggestion for that.
I run hello world example but it seems like it is not working properly.

Here is my Docker file for Nodejs Hello world demo

FROM      ubuntu:14.04

MAINTAINER xxx <xxx...@gmail.com>

RUN     sudo apt-get install curl -y
RUN     curl -sL https://deb.nodesource.com/setup | sudo bash -
RUN     sudo apt-get install -y nodejs
RUN     sudo npm install -g bower
RUN     npm -g install npm@latest
RUN     sudo apt-get install git -y

# Install app dependencies
COPY package.json /src/package.json
RUN cd /src; npm install --production

# Bundle app source
COPY . /src

#RUN sudo npm install

EXPOSE 8080

CMD ["node", "/src/server.js"]

#ENTRYPOINT ["/usr/bin/kurento-media-server"]


Below is the result when i build the docker container

[root@localhost kurento-hello-world]# docker build -t helloworldnodejs .
Sending build context to Docker daemon 223.7 kB
Step 1 : FROM ubuntu:14.04
 ---> 07c86167cdc4
Step 2 : MAINTAINER xxx <xxx...@gmail.com>
 ---> Using cache
 ---> addd2759f7a9
Step 3 : RUN sudo apt-get install curl -y
 ---> Using cache
 ---> 496275e824a3
Step 4 : RUN curl -sL https://deb.nodesource.com/setup | sudo bash -
 ---> Using cache
 ---> 56a567cf65ca
Step 5 : RUN sudo apt-get install -y nodejs
 ---> Using cache
 ---> 7aa5429e1ad6
Step 6 : RUN sudo npm install -g bower
 ---> Using cache
 ---> 5850c1ee855c
Step 7 : RUN npm -g install npm@latest
 ---> Using cache
 ---> 2ad6d205c3bc
Step 8 : RUN sudo apt-get install git -y
 ---> Using cache
 ---> 2c0868360489
Step 9 : COPY package.json /src/package.json
 ---> Using cache
 ---> a6c39bdb327a
Step 10 : RUN cd /src; npm install --production
 ---> Using cache
 ---> adaf195f58d8
Step 11 : COPY . /src
 ---> Using cache
 ---> 60fa5bf3a1d3
Step 12 : EXPOSE 8080
 ---> Using cache
 ---> a55c9ef73d87
Step 13 : CMD node /src/server.js
 ---> Using cache
 ---> 6c2516d05840
Successfully built 6c2516d05840
[root@localhost kurento-hello-world]#

With the help below command I run the demo

docker run -p 8443:8080 -d helloworldnodejs

but it gives me following result.. It is exited

root@localhost kurento-hello-world]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                         PORTS                    NAMES
118fc6a1b833        helloworldnodejs       "node /src/server.js"    3 seconds ago       Exited (8) 1 seconds ago

Could you please give me any suggestion for this?
I am new to the Docker Hub.

Also I run the Kurento Media Server 6 (separate file )

It's Dockerfile is

# kurento-media-server
#
# VERSION               6.2.0

FROM      ubuntu:14.04

MAINTAINER xxx <xxx...@gmail.com>

RUN     echo "deb http://ubuntu.kurento.org trusty kms6" | sudo tee /etc/apt/sources.list.d/kurento.list
RUN     sudo apt-get install wget -y
RUN     wget -O - http://ubuntu.kurento.org/kurento.gpg.key | sudo apt-key add -
RUN     sudo apt-get update -y
RUN     sudo apt-get install kurento-media-server-6.0 -y

EXPOSE 8888

#COPY ./entrypoint.sh /entrypoint.sh

#ENV GST_DEBUG=Kurento*:5

#ENTRYPOINT ["/entrypoint.sh"]

RUN sudo service kurento-media-server-6.0 start

#ENTRYPOINT ["/usr/bin/kurento-media-server"]


It is also successfully built

[root@localhost kurento-media-server]# docker build -t kurento_media_server .
Sending build context to Docker daemon 4.096 kB
Step 1 : FROM ubuntu:14.04
 ---> 07c86167cdc4
Step 2 : MAINTAINER xxx <xxx...@gmail.com>
 ---> Using cache
 ---> addd2759f7a9
Step 3 : RUN echo "deb http://ubuntu.kurento.org trusty kms6" | sudo tee /etc/apt/sources.list.d/kurento.list
 ---> Using cache
 ---> 1112ea75df17
Step 4 : RUN sudo apt-get install wget -y
 ---> Using cache
 ---> 38bd206f3eaf
Step 5 : RUN wget -O - http://ubuntu.kurento.org/kurento.gpg.key | sudo apt-key add -
 ---> Using cache
 ---> 063d9294e507
Step 6 : RUN sudo apt-get update -y
 ---> Using cache
 ---> fab30b06a107
Step 7 : RUN sudo apt-get install kurento-media-server-6.0 -y
 ---> Using cache
 ---> 088344cc1d6f
Step 8 : EXPOSE 8888
 ---> Using cache
 ---> 31e7443598d2
Step 9 : RUN sudo service kurento-media-server-6.0 start
 ---> Using cache
 ---> e7f84bf1a1b5
Successfully built e7f84bf1a1b5
[root@localhost kurento-media-server]#



But it is not running when I run the docker container.

75af7110b722        kurento_media_server   "/bin/bash"              46 minutes ago      Exited (0) 46 minutes ago                             evil_aryabhata

I have some questions

What am I missing?
Is there any working example of nodejs demo using Docker engine
How to install KMS6 on Centos7 using Docker?

Any suggestion would be appreciated.

Thank you.

alessand...@gmail.com

unread,
Mar 16, 2016, 7:28:58 AM3/16/16
to kurento, no...@thewordnerd.info
I also use KMS in a docker container installed in a CentOs system, it works fine.
My current version of KMS in docker container is 6.2.0

AlohaTech

unread,
Mar 16, 2016, 7:47:55 AM3/16/16
to kurento, no...@thewordnerd.info, alessand...@gmail.com
Could you  please provide me steps for this?
I mean how to install KMS6 on CentOS7 using Docker..
What is the configuration of Docker file?


Please give me any suggestion.
Thank you

AlohaTech

unread,
Mar 16, 2016, 10:47:25 AM3/16/16
to kurento, no...@thewordnerd.info, alessand...@gmail.com
Finally run the kurento media server in CentOS7 using Docker and now I am trying to run the sample helloworld demo example in nodejs on CentOs7

my dockerfile for kurento media server is

# Kurento Media Server
#
# VERSION  6.1.0
FROM ubuntu:14.04

MAINTAINER xxx <xxx...@gmail.com>

# make sure the package repository is up to date

RUN apt-get update \
        && apt-get -y install wget \
        && echo "deb http://ubuntu.kurento.org trusty kms6" | tee /etc/apt/sources.list.d/kurento.list \
        && wget -O - http://ubuntu.kurento.org/kurento.gpg.key | apt-key add - \
        && apt-get update \
        && apt-get -y install kurento-media-server-6.0 \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*

EXPOSE 8888

ENV GST_DEBUG=Kurento*:5

ENTRYPOINT ["/usr/bin/kurento-media-server"]

CMD ["2>&1"]

inspi...@googlemail.com

unread,
Apr 1, 2016, 3:10:19 PM4/1/16
to kurento, no...@thewordnerd.info
Hello all,

i run the official kurento docker image on a mac for developement and it all works without issues.
Yesterday I started deploying kurento on production machine on a docker running on debian.
I configured an own stun and turn for kurento and my clients. Chrome works fine.
Firefox doesn't. He complains "ICE failed, see about:webrtc for more details"

I think it has to do with UDP but i was able to expose different port ranges of docker. but not sure if thats all good and well.
fiware/stream-oriented-kurento    0.0.0.0:8888->8888/tcp, 0.0.0.0:32773->3478/udp, 0.0.0.0:32772->3479/udp, 0.0.0.0:49152->65535/udp
kurento gets contacted by starting the hello world app (i am working with meteor) https://github.com/inspiraluna/kurento-meteor

I installed another Kurento Media Server on a Amazon AWS Ubuntu image. And also Firefox workes very well. Just that I do not want to setup another machine at the moment.
If anybody has experiences. please post here... :)

mnba...@gmail.com

unread,
Jul 6, 2016, 1:49:06 PM7/6/16
to kurento, no...@thewordnerd.info
Based on the example of http://doc-kurento.readthedocs.io/en/stable/tutorials/js/tutorial-helloworld.html, you have to secure your Kurento and EXPOSE 8433 port on your docker. 

On Chrome, type https://192.168.99.100:8433/kurento and accept the certificate. 

// Review the example for more detail.
$ http-server -p 8443 -S -C keys/server.crt -K keys/server.key


Thanks,
Bao

Michael

unread,
Sep 6, 2017, 9:53:42 PM9/6/17
to kurento
I realise this is an old thread, but is anyone able to give guidance on running kurento inside a container in AWS Elastic Container Service? We have had significant issues running inside a container, but no issues if kurento is running outside of the container, in the exact same VPC + Security group. We are running the container with kurento on network=host and can successfully connect to the (tcp) ports reported as candidates however chrome just decides not to connect - any ideas why it might be failing?
Reply all
Reply to author
Forward
0 new messages