diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..19f7441ebc2f006d00eb016daa4263601ad61411
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,12 @@
+FROM smusihin/gnuradio-bladerf:latest
+ENV DEBIAN_FRONTEND=noninteractive
+RUN sudo apt-get update 
+COPY ./keyboard /etc/default/keyboard
+RUN sudo echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
+RUN sudo echo keyboard-configuration keyboard-configuration/layout select 'English (US)' | sudo debconf-set-selections
+RUN sudo echo keyboard-configuration keyboard-configuration/layoutcode select 'us' | sudo debconf-set-selections 
+RUN sudo echo "resolvconf resolvconf/linkify-resolvconf boolean false" | sudo debconf-set-selections
+RUN sudo apt-get install -y keyboard-configuration
+RUN sudo apt-get install -y qtcreator libxrender1 gdb
+RUN sudo apt-get install -y fonts-ubuntu
+CMD ["/usr/bin/qtcreator"]
diff --git a/docker/keyboard b/docker/keyboard
new file mode 100644
index 0000000000000000000000000000000000000000..b372bfa6a838c231ebc269fc4bac979ded11bb10
--- /dev/null
+++ b/docker/keyboard
@@ -0,0 +1,17 @@
+# Check /usr/share/doc/keyboard-configuration/README.Debian for
+# documentation on what to do after having modified this file.
+
+# The following variables describe your keyboard and can have the same
+# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
+# in /etc/X11/xorg.conf.
+
+XKBMODEL="pc105"
+XKBLAYOUT="us"
+XKBVARIANT="intl"
+XKBOPTIONS=""
+
+# If you don't want to use the XKB layout on the console, you can
+# specify an alternative keymap.  Make sure it will be accessible
+# before /usr is mounted.
+# KMAP=/etc/console-setup/defkeymap.kmap.gz
+BACKSPACE="guess"
diff --git a/docker/run.sh b/docker/run.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e8356ddc753f73e94fc67727278dbff8abe9ffed
--- /dev/null
+++ b/docker/run.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+set -x
+
+# hack but works
+xhost +
+
+sudo docker run \
+  -it --rm --privileged \
+  -e PULSE_SERVER=unix:/run/user/1000/pulse/native \
+  -v /var/lib/dbus:/var/lib/dbus \
+  -v /dev/bus/usb:/dev/bus/usb \
+  -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
+  -e DISPLAY=unix$DISPLAY \
+  -v /run/user/1000/pulse:/run/user/1000/pulse \
+  -v $(pwd):/home/blade/gr-bladeRF \
+  -u blade \
+  blade-dev /bin/bash