---
title: Docker and NixOS playing nicely together
date: 2024-12-10
permalink: daily/2024/12/10/docker-nixos
tags:
  - software-development
  - linux
  - docker
  - nix
  - nixos
cta: ~
snippet: |
  My homelab laptop is running a combination of native NixOS services and some running with Docker and Docker Compose.
---

As I've added software to my NixOS homelab server, I've found some things that aren't yet available in the nixpkgs repository.

A common approach seems to be to use Docker and Docker Compose to run things in containers, especially ones that need multiple services like a web server, a database and a cache or proxy.

[I've moved my development projects from Docker to devenv][1], but I still have Docker installed and available.

I knew it was easy to create a container image from a Nix-based setup, but the opposite is also true.

It's very easy to run containers within NixOS.

For example, here's [how I've configured Tube Archivist][0].

This was created using a tool called `compose2nix`, but I've seen simpler examples for other services.

This made it easy to take a Docker Compose file and convert it to a Docker or Podman container.

My preference is to use NixOS services if they exist, but it's great to be able to do this as an alternative when needed.

[0]: https://github.com/opdavies/dotfiles/blob/8cdc6a511dab5a31b1bc0a90bcdcf361043498e7/nix/modules/nixos/features/homelab/tubearchivist-container.nix
[1]: {{site.url}}/daily/2024/12/09/drupal-devenv