summaryrefslogtreecommitdiff
path: root/cmd/dockerd/config_unix.go
diff options
context:
space:
mode:
authorAkihiro Suda <suda.akihiro@lab.ntt.co.jp>2018-10-15 16:52:53 +0900
committerAkihiro Suda <suda.akihiro@lab.ntt.co.jp>2019-02-04 00:24:27 +0900
commitec87479b7e2bf6f1b5bcc657a377c6e6a847574f (patch)
tree4c6b27c79670976df90cefa0af4ca16dba100dc5 /cmd/dockerd/config_unix.go
parent50e63adf30d33fc1547527a4097c796cbe4b770f (diff)
downloaddocker-ec87479b7e2bf6f1b5bcc657a377c6e6a847574f.tar.gz
allow running `dockerd` in an unprivileged user namespace (rootless mode)
Please refer to `docs/rootless.md`. TLDR: * Make sure `/etc/subuid` and `/etc/subgid` contain the entry for you * `dockerd-rootless.sh --experimental` * `docker -H unix://$XDG_RUNTIME_DIR/docker.sock run ...` Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Diffstat (limited to 'cmd/dockerd/config_unix.go')
-rw-r--r--cmd/dockerd/config_unix.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/cmd/dockerd/config_unix.go b/cmd/dockerd/config_unix.go
index 2dbd84b1db..cc42ff36c8 100644
--- a/cmd/dockerd/config_unix.go
+++ b/cmd/dockerd/config_unix.go
@@ -5,14 +5,17 @@ package main
import (
"github.com/docker/docker/daemon/config"
"github.com/docker/docker/opts"
+ "github.com/docker/docker/rootless"
"github.com/docker/go-units"
"github.com/spf13/pflag"
)
// installConfigFlags adds flags to the pflag.FlagSet to configure the daemon
-func installConfigFlags(conf *config.Config, flags *pflag.FlagSet) {
+func installConfigFlags(conf *config.Config, flags *pflag.FlagSet) error {
// First handle install flags which are consistent cross-platform
- installCommonConfigFlags(conf, flags)
+ if err := installCommonConfigFlags(conf, flags); err != nil {
+ return err
+ }
// Then install flags common to unix platforms
installUnixConfigFlags(conf, flags)
@@ -46,5 +49,7 @@ func installConfigFlags(conf *config.Config, flags *pflag.FlagSet) {
flags.BoolVar(&conf.NoNewPrivileges, "no-new-privileges", false, "Set no-new-privileges by default for new containers")
flags.StringVar(&conf.IpcMode, "default-ipc-mode", config.DefaultIpcMode, `Default mode for containers ipc ("shareable" | "private")`)
flags.Var(&conf.NetworkConfig.DefaultAddressPools, "default-address-pool", "Default address pools for node specific local networks")
-
+ // Mostly users don't need to set this flag explicitly.
+ flags.BoolVar(&conf.Rootless, "rootless", rootless.RunningWithNonRootUsername(), "Enable rootless mode (experimental)")
+ return nil
}