Delivers a range of games straight to a computer's desktop.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Andrey Arapov 25038162ed add proton/vulkan deps 1 month ago
data Store steam data in data/ folder (fix) 2 years ago
.dockerignore Do not copy data/ folder. Fix #15 2 years ago
.gitignore Store steam data in data/ folder (fix) 2 years ago add proton/vulkan deps 1 month ago
Dockerfile add proton/vulkan deps 1 month ago
LICENSE Initial commit 2 years ago
Makefile add Makefile 1 year ago trivial 9 months ago
dnsmasq.conf use localhost for dnsmasq 2 years ago
docker-compose.yml fixes 9 months ago
launch bugfix: libfreeblpriv3 to be found in a tls/ directory 2 years ago
resolv.conf use fastest DNS resolver 8 months ago

Steam in Docker


  1. I want to set-up more fences when running the code I cannot always trust nor verify; issue 3671
  2. I do not want to be spending time figuring out how to install Steam (what deps) in a non-Debian (or non-SteamOS) based distro;
  3. I like cleanliness: I can erase Steam and all its dependencies in a matter of seconds by just removing this image;
  4. I can have Steam on my Ubuntu/openSUSE/[put any other distro I will want to use] in a short time that Docker takes to download this image;

Suggestions / PR’s are welcome!

What’s tested?


  • Counter-Strike: Global Offensive
  • Alien: Isolation
  • PAYDAY 2
  • Insurgency
  • Half-Life: Counter-Strike 1.6
  • Iron Snout
  • Toribash
  • DeadCore (no sound)


  • Linux: Ubuntu 16.04 LTS (64-bit)
  • Linux: openSUSE Leap 42.1 (64-bit)


  • Sony Vaio Pro 13
  • Lenovo X1 Carbon
  • Apple MacBook Pro “Core i7” 2.9 15” Touch/Mid-2017


  • Intel HD Graphics 3000
  • Intel HD Graphics 4400
  • NVIDIA’s GeForce GTX 560 Ti
  • AMD Radeon Pro 560

For running games on AMD Radeon please uncomment /dev/kfd device in the docker-compose.yml file.


Building and launching Steam

Launching Steam in Docker

The simplest way to launch Steam is this:

git clone
cd steam
docker-compose run steam

If Steam does not start, you may need to allow your user making connections to your X server:

xhost +SI:localuser:$(id -un)

You can use the following shortcut function and place it to your ~/.bash_aliases file:

function docker_helper() {
    pushd ~/$1
    docker-compose rm -fa "$1"
    docker-compose run -d --name "$1" "$@"

function steam() {
    docker_helper "$FUNCNAME" "$@"

Then just use steam command to run Steam image.

Updating image

Re-run this command later on in order to keep the image updated:

cd steam/
git pull
VERSION=$(git rev-parse HEAD | head -c8) make


You might want to modify the docker-compose.yml in case of problems, the file should be pretty self explanatory, although you may refer to the official Docker Compose file reference

Also keep in mind to uncomment or/and add your devices to the devices: section there.

The best result is when you have a similar to the following output, using the glxgears (part of mesa-utils package):

If you are getting segmentation fault error or Steam does not start, then you could try resetting its config:

docker-compose run --rm steam --reset

Grsecurity notes

grsec: TPE

Trusted Path Execution (TPE)

This Steam docker image is working with the grsecurity patched kernel. It only needs a /proc/sys/kernel/grsecurity/tpe_gid accessible by root for read.

grsec: PaX

It is also working with PaX part of the grsecurity. I have tested it with Half-Life games like CS 1.6, and CS:GO. Please refer to the launch file if grsecurity is blocking some executable or a library.


Below is just bunch of links, someone might find them useful