From 5d9c62541a3524fd2c035b75058a0cb412b61f95 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Sat, 10 Sep 2016 12:55:46 +0200 Subject: docker module: updates - logDriver option, use journald for logging by default - keep storage driver intact by default, as docker has sane defaults - do not choose storage driver in tests, docker will choose by itself - use dockerd binary as "docker daemon" command is deprecated and will be removed - add overlay2 to list of storage drivers --- nixos/modules/virtualisation/docker.nix | 25 +++++++++++++++++++++---- nixos/tests/docker.nix | 3 --- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix index ebc2be087a5b..92fe98f3f9c2 100644 --- a/nixos/modules/virtualisation/docker.nix +++ b/nixos/modules/virtualisation/docker.nix @@ -40,13 +40,25 @@ in }; storageDriver = mkOption { - type = types.enum ["aufs" "btrfs" "devicemapper" "overlay" "zfs"]; - default = "devicemapper"; + type = types.nullOr (types.enum ["aufs" "btrfs" "devicemapper" "overlay" "overlay2" "zfs"]); + default = null; description = '' - This option determines which Docker storage driver to use. + This option determines which Docker storage driver to use. By default + it let's docker automatically choose preferred storage driver. ''; }; + + logDriver = + mkOption { + type = types.enum ["none" "json-file" "syslog" "journald" "gelf" "fluentd" "awslogs" "splunk" "etwlogs" "gcplogs"]; + default = "journald"; + description = + '' + This option determines which Docker log driver to use. + ''; + }; + extraOptions = mkOption { type = types.separatedString " "; @@ -88,7 +100,12 @@ in after = [ "network.target" ] ++ (optional cfg.socketActivation "docker.socket") ; requires = optional cfg.socketActivation "docker.socket"; serviceConfig = { - ExecStart = "${pkgs.docker}/bin/docker daemon --group=docker --storage-driver=${cfg.storageDriver} ${optionalString cfg.socketActivation "--host=fd://"} ${cfg.extraOptions}"; + ExecStart = ''${pkgs.docker}/bin/dockerd \ + --group=docker --log-driver=${cfg.logDriver} \ + ${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \ + ${optionalString cfg.socketActivation "--host=fd://"} \ + ${cfg.extraOptions} + ''; # I'm not sure if that limits aren't too high, but it's what # goes in config bundled with docker itself LimitNOFILE = 1048576; diff --git a/nixos/tests/docker.nix b/nixos/tests/docker.nix index 06e511d6e0bd..1b57a94a05d4 100644 --- a/nixos/tests/docker.nix +++ b/nixos/tests/docker.nix @@ -11,9 +11,6 @@ import ./make-test.nix ({ pkgs, ...} : { { config, pkgs, ... }: { virtualisation.docker.enable = true; - # FIXME: The default "devicemapper" storageDriver fails in NixOS VM - # tests. - virtualisation.docker.storageDriver = "overlay"; }; }; -- cgit 1.4.1