diff options
author | Akihiro Suda <suda.akihiro@lab.ntt.co.jp> | 2018-10-15 16:52:53 +0900 |
---|---|---|
committer | Akihiro Suda <suda.akihiro@lab.ntt.co.jp> | 2019-02-04 00:24:27 +0900 |
commit | ec87479b7e2bf6f1b5bcc657a377c6e6a847574f (patch) | |
tree | 4c6b27c79670976df90cefa0af4ca16dba100dc5 /cmd/dockerd/config_unix.go | |
parent | 50e63adf30d33fc1547527a4097c796cbe4b770f (diff) | |
download | docker-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.go | 11 |
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 } |