Home Explore Blog Models CI



nix

doc/manual/source/installation/installing-docker.md
fe9ce189013b421bbf6777bc1bf448069aa85d9b137a29ee00000003000008a0
# Using Nix within Docker

To run the latest stable release of Nix with Docker run the following command:

```console
$ docker run -ti ghcr.io/nixos/nix
Unable to find image 'ghcr.io/nixos/nix:latest' locally
latest: Pulling from ghcr.io/nixos/nix
5843afab3874: Pull complete
b52bf13f109c: Pull complete
1e2415612aa3: Pull complete
Digest: sha256:27f6e7f60227e959ee7ece361f75d4844a40e1cc6878b6868fe30140420031ff
Status: Downloaded newer image for ghcr.io/nixos/nix:latest
35ca4ada6e96:/# nix --version
nix (Nix) 2.3.12
35ca4ada6e96:/# exit
```

# What is included in Nix's Docker image?

The official Docker image is created using `pkgs.dockerTools.buildLayeredImage`
(and not with `Dockerfile` as it is usual with Docker images). You can still
base your custom Docker image on it as you would do with any other Docker
image.

The Docker image is also not based on any other image and includes minimal set
of runtime dependencies that are required to use Nix:

 - pkgs.nix
 - pkgs.bashInteractive
 - pkgs.coreutils-full
 - pkgs.gnutar
 - pkgs.gzip
 - pkgs.gnugrep
 - pkgs.which
 - pkgs.curl
 - pkgs.less
 - pkgs.wget
 - pkgs.man
 - pkgs.cacert.out
 - pkgs.findutils

# Docker image with the latest development version of Nix

To get the latest image that was built by [Hydra](https://hydra.nixos.org) run
the following command:

```console
$ curl -L https://hydra.nixos.org/job/nix/master/dockerImage.x86_64-linux/latest/download/1 | docker load
$ docker run -ti nix:2.5pre20211105
```

You can also build a Docker image from source yourself:

```console
$ nix build ./\#hydraJobs.dockerImage.x86_64-linux
$ docker load -i ./result/image.tar.gz
$ docker run -ti nix:2.5pre20211105
```

# Docker image with non-root Nix

If you would like to run Nix in a container under a user other than `root`,
you can build an image with a non-root single-user installation of Nix
by specifying the `uid`, `gid`, `uname`, and `gname` arguments to `docker.nix`:

```console
$ nix build --file docker.nix \
    --arg uid 1000 \
    --arg gid 1000 \
    --argstr uname user \
    --argstr gname user \
    --argstr name nix-user \
    --out-link nix-user.tar.gz
$ docker load -i nix-user.tar.gz
$ docker run -ti nix-user
```

Chunks
4dc2ece8 (1st chunk of `doc/manual/source/installation/installing-docker.md`)
Title: Using Nix with Docker
Summary
This document provides instructions for using Nix within Docker containers. It details how to run the latest stable release of Nix using the official Docker image, outlines the minimal set of runtime dependencies included in the image, and explains how the image is built using `pkgs.dockerTools.buildLayeredImage`. Additionally, it covers methods to obtain and run the latest development version of Nix in Docker, either from Hydra or by building it from source, and demonstrates how to build a Docker image with a non-root Nix installation by specifying user and group arguments.