Each platform has only a driver now.
Signed-off-by: David Calavera <david.calavera@gmail.com>
| ... | ... |
@@ -51,7 +51,6 @@ complete -c docker -f -n '__fish_docker_no_subcommand' -s d -l daemon -d 'Enable |
| 51 | 51 |
complete -c docker -f -n '__fish_docker_no_subcommand' -l dns -d 'Force Docker to use specific DNS servers' |
| 52 | 52 |
complete -c docker -f -n '__fish_docker_no_subcommand' -l dns-opt -d 'Force Docker to use specific DNS options' |
| 53 | 53 |
complete -c docker -f -n '__fish_docker_no_subcommand' -l dns-search -d 'Force Docker to use specific DNS search domains' |
| 54 |
-complete -c docker -f -n '__fish_docker_no_subcommand' -s e -l exec-driver -d 'Force the Docker runtime to use a specific exec driver' |
|
| 55 | 54 |
complete -c docker -f -n '__fish_docker_no_subcommand' -l exec-opt -d 'Set exec driver options' |
| 56 | 55 |
complete -c docker -f -n '__fish_docker_no_subcommand' -l fixed-cidr -d 'IPv4 subnet for fixed IPs (e.g. 10.20.0.0/16)' |
| 57 | 56 |
complete -c docker -f -n '__fish_docker_no_subcommand' -l fixed-cidr-v6 -d 'IPv6 subnet for fixed IPs (e.g.: 2001:a02b/48)' |
| ... | ... |
@@ -540,7 +540,6 @@ __docker_subcommand() {
|
| 540 | 540 |
"($help)*--dns-opt=[DNS options to use]:DNS option: " \ |
| 541 | 541 |
"($help)*--default-ulimit=[Set default ulimit settings for containers]:ulimit: " \ |
| 542 | 542 |
"($help)--disable-legacy-registry[Do not contact legacy registries]" \ |
| 543 |
- "($help -e --exec-driver)"{-e=,--exec-driver=}"[Exec driver to use]:driver:(native windows)" \
|
|
| 544 | 543 |
"($help)*--exec-opt=[Set exec driver options]:exec driver options: " \ |
| 545 | 544 |
"($help)--exec-root=[Root of the Docker execdriver]:path:_directories" \ |
| 546 | 545 |
"($help)--fixed-cidr=[IPv4 subnet for fixed IPs]:IPv4 subnet: " \ |
| ... | ... |
@@ -21,7 +21,6 @@ type CommonConfig struct {
|
| 21 | 21 |
DNS []string |
| 22 | 22 |
DNSOptions []string |
| 23 | 23 |
DNSSearch []string |
| 24 |
- ExecDriver string |
|
| 25 | 24 |
ExecOptions []string |
| 26 | 25 |
ExecRoot string |
| 27 | 26 |
GraphDriver string |
| ... | ... |
@@ -62,7 +61,6 @@ func (config *Config) InstallCommonFlags(cmd *flag.FlagSet, usageFn func(string) |
| 62 | 62 |
cmd.StringVar(&config.ExecRoot, []string{"-exec-root"}, "/var/run/docker", usageFn("Root of the Docker execdriver"))
|
| 63 | 63 |
cmd.BoolVar(&config.AutoRestart, []string{"#r", "#-restart"}, true, usageFn("--restart on the daemon has been deprecated in favor of --restart policies on docker run"))
|
| 64 | 64 |
cmd.StringVar(&config.GraphDriver, []string{"s", "-storage-driver"}, "", usageFn("Storage driver to use"))
|
| 65 |
- cmd.StringVar(&config.ExecDriver, []string{"e", "-exec-driver"}, defaultExec, usageFn("Exec driver to use"))
|
|
| 66 | 65 |
cmd.IntVar(&config.Mtu, []string{"#mtu", "-mtu"}, 0, usageFn("Set the containers network MTU"))
|
| 67 | 66 |
// FIXME: why the inconsistency between "hosts" and "sockets"? |
| 68 | 67 |
cmd.Var(opts.NewListOptsRef(&config.DNS, opts.ValidateIPAddress), []string{"#dns", "-dns"}, usageFn("DNS server to use"))
|
| ... | ... |
@@ -489,7 +489,6 @@ func (daemon *Daemon) newContainer(name string, config *runconfig.Config, imgID |
| 489 | 489 |
base.NetworkSettings = &network.Settings{IsAnonymousEndpoint: noExplicitName}
|
| 490 | 490 |
base.Name = name |
| 491 | 491 |
base.Driver = daemon.driver.String() |
| 492 |
- base.ExecDriver = daemon.execDriver.Name() |
|
| 493 | 492 |
|
| 494 | 493 |
return base, err |
| 495 | 494 |
} |
| ... | ... |
@@ -793,7 +792,7 @@ func NewDaemon(config *Config, registryService *registry.Service) (daemon *Daemo |
| 793 | 793 |
return nil, fmt.Errorf("Devices cgroup isn't mounted")
|
| 794 | 794 |
} |
| 795 | 795 |
|
| 796 |
- ed, err := execdrivers.NewDriver(config.ExecDriver, config.ExecOptions, config.ExecRoot, config.Root, sysInitPath, sysInfo) |
|
| 796 |
+ ed, err := execdrivers.NewDriver(config.ExecOptions, config.ExecRoot, config.Root, sysInitPath, sysInfo) |
|
| 797 | 797 |
if err != nil {
|
| 798 | 798 |
return nil, err |
| 799 | 799 |
} |
| ... | ... |
@@ -15,11 +15,8 @@ import ( |
| 15 | 15 |
) |
| 16 | 16 |
|
| 17 | 17 |
func setupRemappedRoot(config *Config) ([]idtools.IDMap, []idtools.IDMap, error) {
|
| 18 |
- if config.ExecDriver != "native" && config.RemappedRoot != "" {
|
|
| 19 |
- return nil, nil, fmt.Errorf("User namespace remapping is only supported with the native execdriver")
|
|
| 20 |
- } |
|
| 21 |
- if runtime.GOOS == "windows" && config.RemappedRoot != "" {
|
|
| 22 |
- return nil, nil, fmt.Errorf("User namespaces are not supported on Windows")
|
|
| 18 |
+ if runtime.GOOS != "linux" && config.RemappedRoot != "" {
|
|
| 19 |
+ return nil, nil, fmt.Errorf("User namespaces are not supported on Linux")
|
|
| 23 | 20 |
} |
| 24 | 21 |
|
| 25 | 22 |
// if the daemon was started with remapped root option, parse |
| ... | ... |
@@ -166,7 +166,7 @@ func TestLoadWithVolume(t *testing.T) {
|
| 166 | 166 |
"HostnamePath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hostname", |
| 167 | 167 |
"HostsPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hosts", |
| 168 | 168 |
"LogPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e-json.log", |
| 169 |
-"Name":"/ubuntu","Driver":"aufs","ExecDriver":"native-0.2","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 169 |
+"Name":"/ubuntu","Driver":"aufs","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 170 | 170 |
"UpdateDns":false,"Volumes":{"/vol1":"%s"},"VolumesRW":{"/vol1":true},"AppliedVolumesFrom":null}`
|
| 171 | 171 |
|
| 172 | 172 |
cfg := fmt.Sprintf(config, vfsPath) |
| ... | ... |
@@ -255,7 +255,7 @@ func TestLoadWithBindMount(t *testing.T) {
|
| 255 | 255 |
"HostnamePath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hostname", |
| 256 | 256 |
"HostsPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hosts", |
| 257 | 257 |
"LogPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e-json.log", |
| 258 |
-"Name":"/ubuntu","Driver":"aufs","ExecDriver":"native-0.2","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 258 |
+"Name":"/ubuntu","Driver":"aufs","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 259 | 259 |
"UpdateDns":false,"Volumes":{"/vol1": "/vol1"},"VolumesRW":{"/vol1":true},"AppliedVolumesFrom":null}`
|
| 260 | 260 |
|
| 261 | 261 |
if err = ioutil.WriteFile(filepath.Join(containerPath, "config.json"), []byte(config), 0644); err != nil {
|
| ... | ... |
@@ -346,7 +346,7 @@ func TestLoadWithVolume17RC(t *testing.T) {
|
| 346 | 346 |
"HostnamePath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hostname", |
| 347 | 347 |
"HostsPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hosts", |
| 348 | 348 |
"LogPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e-json.log", |
| 349 |
-"Name":"/ubuntu","Driver":"aufs","ExecDriver":"native-0.2","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 349 |
+"Name":"/ubuntu","Driver":"aufs","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 350 | 350 |
"UpdateDns":false,"MountPoints":{"/vol1":{"Name":"6a3c03fc4a4e588561a543cc3bdd50089e27bd11bbb0e551e19bf735e2514101","Destination":"/vol1","Driver":"local","RW":true,"Source":"","Relabel":""}},"AppliedVolumesFrom":null}`
|
| 351 | 351 |
|
| 352 | 352 |
if err = ioutil.WriteFile(filepath.Join(containerPath, "config.json"), []byte(config), 0644); err != nil {
|
| ... | ... |
@@ -450,7 +450,7 @@ func TestRemoveLocalVolumesFollowingSymlinks(t *testing.T) {
|
| 450 | 450 |
"HostnamePath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hostname", |
| 451 | 451 |
"HostsPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/hosts", |
| 452 | 452 |
"LogPath":"/var/lib/docker/containers/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e/d59df5276e7b219d510fe70565e0404bc06350e0d4b43fe961f22f339980170e-json.log", |
| 453 |
-"Name":"/ubuntu","Driver":"aufs","ExecDriver":"native-0.2","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 453 |
+"Name":"/ubuntu","Driver":"aufs","MountLabel":"","ProcessLabel":"","AppArmorProfile":"","RestartCount":0, |
|
| 454 | 454 |
"UpdateDns":false,"Volumes":{"/vol1":"%s"},"VolumesRW":{"/vol1":true},"AppliedVolumesFrom":null}`
|
| 455 | 455 |
|
| 456 | 456 |
cfg := fmt.Sprintf(config, vfsPath) |
| ... | ... |
@@ -10,10 +10,6 @@ import ( |
| 10 | 10 |
) |
| 11 | 11 |
|
| 12 | 12 |
// NewDriver returns a new execdriver.Driver from the given name configured with the provided options. |
| 13 |
-func NewDriver(name string, options []string, root, libPath, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
|
|
| 14 |
- switch name {
|
|
| 15 |
- case "jail": |
|
| 16 |
- return nil, fmt.Errorf("jail driver not yet supported on FreeBSD")
|
|
| 17 |
- } |
|
| 18 |
- return nil, fmt.Errorf("unknown exec driver %s", name)
|
|
| 13 |
+func NewDriver(options []string, root, libPath, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
|
|
| 14 |
+ return nil, fmt.Errorf("jail driver not yet supported on FreeBSD")
|
|
| 19 | 15 |
} |
| ... | ... |
@@ -3,7 +3,6 @@ |
| 3 | 3 |
package execdrivers |
| 4 | 4 |
|
| 5 | 5 |
import ( |
| 6 |
- "fmt" |
|
| 7 | 6 |
"path" |
| 8 | 7 |
|
| 9 | 8 |
"github.com/docker/docker/daemon/execdriver" |
| ... | ... |
@@ -12,9 +11,6 @@ import ( |
| 12 | 12 |
) |
| 13 | 13 |
|
| 14 | 14 |
// NewDriver returns a new execdriver.Driver from the given name configured with the provided options. |
| 15 |
-func NewDriver(name string, options []string, root, libPath, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
|
|
| 16 |
- if name != "native" {
|
|
| 17 |
- return nil, fmt.Errorf("unknown exec driver %s", name)
|
|
| 18 |
- } |
|
| 15 |
+func NewDriver(options []string, root, libPath, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
|
|
| 19 | 16 |
return native.NewDriver(path.Join(root, "execdriver", "native"), initPath, options) |
| 20 | 17 |
} |
| ... | ... |
@@ -3,18 +3,12 @@ |
| 3 | 3 |
package execdrivers |
| 4 | 4 |
|
| 5 | 5 |
import ( |
| 6 |
- "fmt" |
|
| 7 |
- |
|
| 8 | 6 |
"github.com/docker/docker/daemon/execdriver" |
| 9 | 7 |
"github.com/docker/docker/daemon/execdriver/windows" |
| 10 | 8 |
"github.com/docker/docker/pkg/sysinfo" |
| 11 | 9 |
) |
| 12 | 10 |
|
| 13 | 11 |
// NewDriver returns a new execdriver.Driver from the given name configured with the provided options. |
| 14 |
-func NewDriver(name string, options []string, root, libPath, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
|
|
| 15 |
- switch name {
|
|
| 16 |
- case "windows": |
|
| 17 |
- return windows.NewDriver(root, initPath, options) |
|
| 18 |
- } |
|
| 19 |
- return nil, fmt.Errorf("unknown exec driver %s", name)
|
|
| 12 |
+func NewDriver(options []string, root, libPath, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
|
|
| 13 |
+ return windows.NewDriver(root, initPath, options) |
|
| 20 | 14 |
} |
| ... | ... |
@@ -128,7 +128,6 @@ func (daemon *Daemon) getInspectData(container *Container, size bool) (*types.Co |
| 128 | 128 |
Name: container.Name, |
| 129 | 129 |
RestartCount: container.RestartCount, |
| 130 | 130 |
Driver: container.Driver, |
| 131 |
- ExecDriver: container.ExecDriver, |
|
| 132 | 131 |
MountLabel: container.MountLabel, |
| 133 | 132 |
ProcessLabel: container.ProcessLabel, |
| 134 | 133 |
ExecIDs: container.getExecIDs(), |
| ... | ... |
@@ -672,8 +672,6 @@ Status Codes: |
| 672 | 672 |
|
| 673 | 673 |
This endpoint returns a live stream of a container's resource usage statistics. |
| 674 | 674 |
|
| 675 |
-> **Note**: this functionality currently only works when using the *libcontainer* exec-driver. |
|
| 676 |
- |
|
| 677 | 675 |
**Example request**: |
| 678 | 676 |
|
| 679 | 677 |
GET /containers/redis1/stats HTTP/1.1 |
| ... | ... |
@@ -29,7 +29,6 @@ weight = -1 |
| 29 | 29 |
--dns-opt=[] DNS options to use |
| 30 | 30 |
--dns-search=[] DNS search domains to use |
| 31 | 31 |
--default-ulimit=[] Set default ulimit settings for containers |
| 32 |
- -e, --exec-driver="native" Exec driver to use |
|
| 33 | 32 |
--exec-opt=[] Set exec driver options |
| 34 | 33 |
--exec-root="/var/run/docker" Root of the Docker execdriver |
| 35 | 34 |
--fixed-cidr="" IPv4 subnet for fixed IPs |
| ... | ... |
@@ -13,7 +13,6 @@ fi |
| 13 | 13 |
exec 41>&1 42>&2 |
| 14 | 14 |
|
| 15 | 15 |
export DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs}
|
| 16 |
-export DOCKER_EXECDRIVER=${DOCKER_EXECDRIVER:-native}
|
|
| 17 | 16 |
export DOCKER_USERLANDPROXY=${DOCKER_USERLANDPROXY:-true}
|
| 18 | 17 |
|
| 19 | 18 |
# example usage: DOCKER_STORAGE_OPTS="dm.basesize=20G,dm.loopdatasize=200G" |
| ... | ... |
@@ -49,7 +48,6 @@ if [ -z "$DOCKER_TEST_HOST" ]; then |
| 49 | 49 |
docker daemon --debug \ |
| 50 | 50 |
--host "$DOCKER_HOST" \ |
| 51 | 51 |
--storage-driver "$DOCKER_GRAPHDRIVER" \ |
| 52 |
- --exec-driver "$DOCKER_EXECDRIVER" \ |
|
| 53 | 52 |
--pidfile "$DEST/docker.pid" \ |
| 54 | 53 |
--userland-proxy="$DOCKER_USERLANDPROXY" \ |
| 55 | 54 |
$storage_params \ |
| ... | ... |
@@ -27,7 +27,6 @@ func (s *DockerSuite) TestExecResizeApiHeightWidthNoInt(c *check.C) {
|
| 27 | 27 |
// Part of #14845 |
| 28 | 28 |
func (s *DockerSuite) TestExecResizeImmediatelyAfterExecStart(c *check.C) {
|
| 29 | 29 |
testRequires(c, DaemonIsLinux) |
| 30 |
- testRequires(c, NativeExecDriver) |
|
| 31 | 30 |
|
| 32 | 31 |
name := "exec_resize_test" |
| 33 | 32 |
dockerCmd(c, "run", "-d", "-i", "-t", "--name", name, "--restart", "always", "busybox", "/bin/sh") |
| ... | ... |
@@ -18,7 +18,7 @@ func (s *DockerSuite) TestInspectApiContainerResponse(c *check.C) {
|
| 18 | 18 |
|
| 19 | 19 |
cleanedContainerID := strings.TrimSpace(out) |
| 20 | 20 |
keysBase := []string{"Id", "State", "Created", "Path", "Args", "Config", "Image", "NetworkSettings",
|
| 21 |
- "ResolvConfPath", "HostnamePath", "HostsPath", "LogPath", "Name", "Driver", "ExecDriver", "MountLabel", "ProcessLabel", "GraphDriver"} |
|
| 21 |
+ "ResolvConfPath", "HostnamePath", "HostsPath", "LogPath", "Name", "Driver", "MountLabel", "ProcessLabel", "GraphDriver"} |
|
| 22 | 22 |
|
| 23 | 23 |
cases := []struct {
|
| 24 | 24 |
version string |
| ... | ... |
@@ -5459,7 +5459,6 @@ func (s *DockerSuite) TestBuildEmptyStringVolume(c *check.C) {
|
| 5459 | 5459 |
} |
| 5460 | 5460 |
|
| 5461 | 5461 |
func (s *DockerSuite) TestBuildContainerWithCgroupParent(c *check.C) {
|
| 5462 |
- testRequires(c, NativeExecDriver) |
|
| 5463 | 5462 |
testRequires(c, SameHostDaemon) |
| 5464 | 5463 |
testRequires(c, DaemonIsLinux) |
| 5465 | 5464 |
|
| ... | ... |
@@ -870,7 +870,7 @@ func (s *DockerDaemonSuite) TestDaemonDefaultGatewayIPv4ExplicitOutsideContainer |
| 870 | 870 |
} |
| 871 | 871 |
|
| 872 | 872 |
func (s *DockerDaemonSuite) TestDaemonDefaultNetworkInvalidClusterConfig(c *check.C) {
|
| 873 |
- testRequires(c, SameHostDaemon) |
|
| 873 |
+ testRequires(c, DaemonIsLinux, SameHostDaemon) |
|
| 874 | 874 |
|
| 875 | 875 |
// Start daemon without docker0 bridge |
| 876 | 876 |
defaultNetworkBridge := "docker0" |
| ... | ... |
@@ -1032,7 +1032,7 @@ func (s *DockerDaemonSuite) TestDaemonLinksIpTablesRulesWhenLinkAndUnlink(c *che |
| 1032 | 1032 |
} |
| 1033 | 1033 |
|
| 1034 | 1034 |
func (s *DockerDaemonSuite) TestDaemonUlimitDefaults(c *check.C) {
|
| 1035 |
- testRequires(c, NativeExecDriver) |
|
| 1035 |
+ testRequires(c, DaemonIsLinux) |
|
| 1036 | 1036 |
|
| 1037 | 1037 |
if err := s.d.StartWithBusybox("--default-ulimit", "nofile=42:42", "--default-ulimit", "nproc=1024:1024"); err != nil {
|
| 1038 | 1038 |
c.Fatal(err) |
| ... | ... |
@@ -1527,7 +1527,7 @@ func (s *DockerDaemonSuite) TestCleanupMountsAfterCrash(c *check.C) {
|
| 1527 | 1527 |
} |
| 1528 | 1528 |
|
| 1529 | 1529 |
func (s *DockerDaemonSuite) TestRunContainerWithBridgeNone(c *check.C) {
|
| 1530 |
- testRequires(c, NativeExecDriver, NotUserNamespace) |
|
| 1530 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 1531 | 1531 |
c.Assert(s.d.StartWithBusybox("-b", "none"), check.IsNil)
|
| 1532 | 1532 |
|
| 1533 | 1533 |
out, err := s.d.Cmd("run", "--rm", "busybox", "ip", "l")
|
| ... | ... |
@@ -47,7 +47,6 @@ func (s *DockerSuite) TestEventsRedirectStdout(c *check.C) {
|
| 47 | 47 |
|
| 48 | 48 |
func (s *DockerSuite) TestEventsOOMDisableFalse(c *check.C) {
|
| 49 | 49 |
testRequires(c, DaemonIsLinux) |
| 50 |
- testRequires(c, NativeExecDriver) |
|
| 51 | 50 |
testRequires(c, oomControl) |
| 52 | 51 |
testRequires(c, NotGCCGO) |
| 53 | 52 |
|
| ... | ... |
@@ -84,7 +83,6 @@ func (s *DockerSuite) TestEventsOOMDisableFalse(c *check.C) {
|
| 84 | 84 |
|
| 85 | 85 |
func (s *DockerSuite) TestEventsOOMDisableTrue(c *check.C) {
|
| 86 | 86 |
testRequires(c, DaemonIsLinux) |
| 87 |
- testRequires(c, NativeExecDriver) |
|
| 88 | 87 |
testRequires(c, oomControl) |
| 89 | 88 |
testRequires(c, NotGCCGO) |
| 90 | 89 |
|
| ... | ... |
@@ -32,8 +32,7 @@ func (s *DockerSuite) TestExperimentalVersion(c *check.C) {
|
| 32 | 32 |
// 1. validate uid/gid maps are set properly |
| 33 | 33 |
// 2. verify that files created are owned by remapped root |
| 34 | 34 |
func (s *DockerDaemonSuite) TestDaemonUserNamespaceRootSetting(c *check.C) {
|
| 35 |
- testRequires(c, NativeExecDriver) |
|
| 36 |
- testRequires(c, SameHostDaemon) |
|
| 35 |
+ testRequires(c, DaemonIsLinux, SameHostDaemon) |
|
| 37 | 36 |
|
| 38 | 37 |
c.Assert(s.d.StartWithBusybox("--userns-remap", "default"), checker.IsNil)
|
| 39 | 38 |
|
| ... | ... |
@@ -50,8 +50,7 @@ func getContainerStatus(c *check.C, containerID string) string {
|
| 50 | 50 |
} |
| 51 | 51 |
|
| 52 | 52 |
func (s *DockerSuite) TestNetworkNat(c *check.C) {
|
| 53 |
- testRequires(c, DaemonIsLinux) |
|
| 54 |
- testRequires(c, SameHostDaemon, NativeExecDriver) |
|
| 53 |
+ testRequires(c, DaemonIsLinux, SameHostDaemon) |
|
| 55 | 54 |
msg := "it works" |
| 56 | 55 |
startServerContainer(c, msg, 8080) |
| 57 | 56 |
endpoint := getExternalAddress(c) |
| ... | ... |
@@ -67,8 +66,7 @@ func (s *DockerSuite) TestNetworkNat(c *check.C) {
|
| 67 | 67 |
} |
| 68 | 68 |
|
| 69 | 69 |
func (s *DockerSuite) TestNetworkLocalhostTCPNat(c *check.C) {
|
| 70 |
- testRequires(c, DaemonIsLinux) |
|
| 71 |
- testRequires(c, SameHostDaemon, NativeExecDriver) |
|
| 70 |
+ testRequires(c, DaemonIsLinux, SameHostDaemon) |
|
| 72 | 71 |
var ( |
| 73 | 72 |
msg = "hi yall" |
| 74 | 73 |
) |
| ... | ... |
@@ -85,8 +83,7 @@ func (s *DockerSuite) TestNetworkLocalhostTCPNat(c *check.C) {
|
| 85 | 85 |
} |
| 86 | 86 |
|
| 87 | 87 |
func (s *DockerSuite) TestNetworkLoopbackNat(c *check.C) {
|
| 88 |
- testRequires(c, DaemonIsLinux) |
|
| 89 |
- testRequires(c, SameHostDaemon, NativeExecDriver, NotUserNamespace) |
|
| 88 |
+ testRequires(c, DaemonIsLinux, SameHostDaemon, NotUserNamespace) |
|
| 90 | 89 |
msg := "it works" |
| 91 | 90 |
startServerContainer(c, msg, 8080) |
| 92 | 91 |
endpoint := getExternalAddress(c) |
| ... | ... |
@@ -259,7 +259,7 @@ func (s *DockerSuite) TestRunCreateVolumesInSymlinkDir(c *check.C) {
|
| 259 | 259 |
if daemonPlatform == "windows" {
|
| 260 | 260 |
testRequires(c, SameHostDaemon, WindowsDaemonSupportsVolumes) |
| 261 | 261 |
} else {
|
| 262 |
- testRequires(c, SameHostDaemon, NativeExecDriver) |
|
| 262 |
+ testRequires(c, SameHostDaemon) |
|
| 263 | 263 |
} |
| 264 | 264 |
|
| 265 | 265 |
name := "test-volume-symlink" |
| ... | ... |
@@ -923,7 +923,7 @@ func (s *DockerSuite) TestRunCapAddALLDropNetAdminCanDownInterface(c *check.C) {
|
| 923 | 923 |
|
| 924 | 924 |
func (s *DockerSuite) TestRunGroupAdd(c *check.C) {
|
| 925 | 925 |
// Not applicable for Windows as there is no concept of --group-add |
| 926 |
- testRequires(c, DaemonIsLinux, NativeExecDriver) |
|
| 926 |
+ testRequires(c, DaemonIsLinux) |
|
| 927 | 927 |
out, _ := dockerCmd(c, "run", "--group-add=audio", "--group-add=staff", "--group-add=777", "busybox", "sh", "-c", "id") |
| 928 | 928 |
|
| 929 | 929 |
groupsList := "uid=0(root) gid=0(root) groups=10(wheel),29(audio),50(staff),777" |
| ... | ... |
@@ -1280,7 +1280,7 @@ func (s *DockerSuite) TestRunNonRootUserResolvName(c *check.C) {
|
| 1280 | 1280 |
// uses the host's /etc/resolv.conf and does not have any dns options provided. |
| 1281 | 1281 |
func (s *DockerSuite) TestRunResolvconfUpdate(c *check.C) {
|
| 1282 | 1282 |
// Not applicable on Windows as testing unix specific functionality |
| 1283 |
- testRequires(c, SameHostDaemon, DaemonIsLinux, NativeExecDriver) |
|
| 1283 |
+ testRequires(c, SameHostDaemon, DaemonIsLinux) |
|
| 1284 | 1284 |
|
| 1285 | 1285 |
tmpResolvConf := []byte("search pommesfrites.fr\nnameserver 12.34.56.78\n")
|
| 1286 | 1286 |
tmpLocalhostResolvConf := []byte("nameserver 127.0.0.1")
|
| ... | ... |
@@ -2240,9 +2240,6 @@ func (s *DockerSuite) TestRunExposePort(c *check.C) {
|
| 2240 | 2240 |
} |
| 2241 | 2241 |
|
| 2242 | 2242 |
func (s *DockerSuite) TestRunUnknownCommand(c *check.C) {
|
| 2243 |
- if daemonPlatform != "windows" {
|
|
| 2244 |
- testRequires(c, NativeExecDriver) |
|
| 2245 |
- } |
|
| 2246 | 2243 |
out, _, _ := dockerCmdWithStdoutStderr(c, "create", "busybox", "/bin/nada") |
| 2247 | 2244 |
|
| 2248 | 2245 |
cID := strings.TrimSpace(out) |
| ... | ... |
@@ -2384,7 +2381,7 @@ func (s *DockerSuite) TestContainerNetworkMode(c *check.C) {
|
| 2384 | 2384 |
|
| 2385 | 2385 |
func (s *DockerSuite) TestRunModePidHost(c *check.C) {
|
| 2386 | 2386 |
// Not applicable on Windows as uses Unix-specific capabilities |
| 2387 |
- testRequires(c, NativeExecDriver, SameHostDaemon, DaemonIsLinux, NotUserNamespace) |
|
| 2387 |
+ testRequires(c, SameHostDaemon, DaemonIsLinux, NotUserNamespace) |
|
| 2388 | 2388 |
|
| 2389 | 2389 |
hostPid, err := os.Readlink("/proc/1/ns/pid")
|
| 2390 | 2390 |
if err != nil {
|
| ... | ... |
@@ -2406,7 +2403,7 @@ func (s *DockerSuite) TestRunModePidHost(c *check.C) {
|
| 2406 | 2406 |
|
| 2407 | 2407 |
func (s *DockerSuite) TestRunModeUTSHost(c *check.C) {
|
| 2408 | 2408 |
// Not applicable on Windows as uses Unix-specific capabilities |
| 2409 |
- testRequires(c, NativeExecDriver, SameHostDaemon, DaemonIsLinux) |
|
| 2409 |
+ testRequires(c, SameHostDaemon, DaemonIsLinux) |
|
| 2410 | 2410 |
|
| 2411 | 2411 |
hostUTS, err := os.Readlink("/proc/1/ns/uts")
|
| 2412 | 2412 |
if err != nil {
|
| ... | ... |
@@ -2636,7 +2633,7 @@ func (s *DockerSuite) TestRunContainerWithWritableRootfs(c *check.C) {
|
| 2636 | 2636 |
|
| 2637 | 2637 |
func (s *DockerSuite) TestRunContainerWithReadonlyRootfs(c *check.C) {
|
| 2638 | 2638 |
// Not applicable on Windows which does not support --read-only |
| 2639 |
- testRequires(c, NativeExecDriver, DaemonIsLinux) |
|
| 2639 |
+ testRequires(c, DaemonIsLinux) |
|
| 2640 | 2640 |
|
| 2641 | 2641 |
for _, f := range []string{"/file", "/etc/hosts", "/etc/resolv.conf", "/etc/hostname", "/sys/kernel", "/dev/.dont.touch.me"} {
|
| 2642 | 2642 |
testReadOnlyFile(f, c) |
| ... | ... |
@@ -2647,7 +2644,7 @@ func (s *DockerSuite) TestPermissionsPtsReadonlyRootfs(c *check.C) {
|
| 2647 | 2647 |
// Not applicable on Windows due to use of Unix specific functionality, plus |
| 2648 | 2648 |
// the use of --read-only which is not supported. |
| 2649 | 2649 |
// --read-only + userns has remount issues |
| 2650 |
- testRequires(c, DaemonIsLinux, NativeExecDriver, NotUserNamespace) |
|
| 2650 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 2651 | 2651 |
|
| 2652 | 2652 |
// Ensure we have not broken writing /dev/pts |
| 2653 | 2653 |
out, status := dockerCmd(c, "run", "--read-only", "--rm", "busybox", "mount") |
| ... | ... |
@@ -2662,7 +2659,7 @@ func (s *DockerSuite) TestPermissionsPtsReadonlyRootfs(c *check.C) {
|
| 2662 | 2662 |
|
| 2663 | 2663 |
func testReadOnlyFile(filename string, c *check.C) {
|
| 2664 | 2664 |
// Not applicable on Windows which does not support --read-only |
| 2665 |
- testRequires(c, NativeExecDriver, DaemonIsLinux, NotUserNamespace) |
|
| 2665 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 2666 | 2666 |
|
| 2667 | 2667 |
out, _, err := dockerCmdWithError("run", "--read-only", "--rm", "busybox", "touch", filename)
|
| 2668 | 2668 |
if err == nil {
|
| ... | ... |
@@ -2686,7 +2683,7 @@ func testReadOnlyFile(filename string, c *check.C) {
|
| 2686 | 2686 |
func (s *DockerSuite) TestRunContainerWithReadonlyEtcHostsAndLinkedContainer(c *check.C) {
|
| 2687 | 2687 |
// Not applicable on Windows which does not support --link |
| 2688 | 2688 |
// --read-only + userns has remount issues |
| 2689 |
- testRequires(c, NativeExecDriver, DaemonIsLinux, NotUserNamespace) |
|
| 2689 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 2690 | 2690 |
|
| 2691 | 2691 |
dockerCmd(c, "run", "-d", "--name", "test-etc-hosts-ro-linked", "busybox", "top") |
| 2692 | 2692 |
|
| ... | ... |
@@ -2699,7 +2696,7 @@ func (s *DockerSuite) TestRunContainerWithReadonlyEtcHostsAndLinkedContainer(c * |
| 2699 | 2699 |
func (s *DockerSuite) TestRunContainerWithReadonlyRootfsWithDnsFlag(c *check.C) {
|
| 2700 | 2700 |
// Not applicable on Windows which does not support either --read-only or --dns. |
| 2701 | 2701 |
// --read-only + userns has remount issues |
| 2702 |
- testRequires(c, NativeExecDriver, DaemonIsLinux, NotUserNamespace) |
|
| 2702 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 2703 | 2703 |
|
| 2704 | 2704 |
out, _ := dockerCmd(c, "run", "--read-only", "--dns", "1.1.1.1", "busybox", "/bin/cat", "/etc/resolv.conf") |
| 2705 | 2705 |
if !strings.Contains(string(out), "1.1.1.1") {
|
| ... | ... |
@@ -2710,7 +2707,7 @@ func (s *DockerSuite) TestRunContainerWithReadonlyRootfsWithDnsFlag(c *check.C) |
| 2710 | 2710 |
func (s *DockerSuite) TestRunContainerWithReadonlyRootfsWithAddHostFlag(c *check.C) {
|
| 2711 | 2711 |
// Not applicable on Windows which does not support --read-only |
| 2712 | 2712 |
// --read-only + userns has remount issues |
| 2713 |
- testRequires(c, NativeExecDriver, DaemonIsLinux, NotUserNamespace) |
|
| 2713 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 2714 | 2714 |
|
| 2715 | 2715 |
out, _ := dockerCmd(c, "run", "--read-only", "--add-host", "testreadonly:127.0.0.1", "busybox", "/bin/cat", "/etc/hosts") |
| 2716 | 2716 |
if !strings.Contains(string(out), "testreadonly") {
|
| ... | ... |
@@ -2815,7 +2812,7 @@ func (s *DockerSuite) TestRunWriteToProcAsound(c *check.C) {
|
| 2815 | 2815 |
|
| 2816 | 2816 |
func (s *DockerSuite) TestRunReadProcTimer(c *check.C) {
|
| 2817 | 2817 |
// Not applicable on Windows as uses Unix specific functionality |
| 2818 |
- testRequires(c, NativeExecDriver, DaemonIsLinux) |
|
| 2818 |
+ testRequires(c, DaemonIsLinux) |
|
| 2819 | 2819 |
out, code, err := dockerCmdWithError("run", "busybox", "cat", "/proc/timer_stats")
|
| 2820 | 2820 |
if code != 0 {
|
| 2821 | 2821 |
return |
| ... | ... |
@@ -2830,7 +2827,7 @@ func (s *DockerSuite) TestRunReadProcTimer(c *check.C) {
|
| 2830 | 2830 |
|
| 2831 | 2831 |
func (s *DockerSuite) TestRunReadProcLatency(c *check.C) {
|
| 2832 | 2832 |
// Not applicable on Windows as uses Unix specific functionality |
| 2833 |
- testRequires(c, NativeExecDriver, DaemonIsLinux) |
|
| 2833 |
+ testRequires(c, DaemonIsLinux) |
|
| 2834 | 2834 |
// some kernels don't have this configured so skip the test if this file is not found |
| 2835 | 2835 |
// on the host running the tests. |
| 2836 | 2836 |
if _, err := os.Stat("/proc/latency_stats"); err != nil {
|
| ... | ... |
@@ -2875,7 +2872,6 @@ func (s *DockerSuite) TestRunReadFilteredProc(c *check.C) {
|
| 2875 | 2875 |
func (s *DockerSuite) TestMountIntoProc(c *check.C) {
|
| 2876 | 2876 |
// Not applicable on Windows as uses Unix specific functionality |
| 2877 | 2877 |
testRequires(c, DaemonIsLinux) |
| 2878 |
- testRequires(c, NativeExecDriver) |
|
| 2879 | 2878 |
_, code, err := dockerCmdWithError("run", "-v", "/proc//sys", "busybox", "true")
|
| 2880 | 2879 |
if err == nil || code == 0 {
|
| 2881 | 2880 |
c.Fatal("container should not be able to mount into /proc")
|
| ... | ... |
@@ -2885,7 +2881,7 @@ func (s *DockerSuite) TestMountIntoProc(c *check.C) {
|
| 2885 | 2885 |
func (s *DockerSuite) TestMountIntoSys(c *check.C) {
|
| 2886 | 2886 |
// Not applicable on Windows as uses Unix specific functionality |
| 2887 | 2887 |
testRequires(c, DaemonIsLinux) |
| 2888 |
- testRequires(c, NativeExecDriver, NotUserNamespace) |
|
| 2888 |
+ testRequires(c, NotUserNamespace) |
|
| 2889 | 2889 |
dockerCmd(c, "run", "-v", "/sys/fs/cgroup", "busybox", "true") |
| 2890 | 2890 |
} |
| 2891 | 2891 |
|
| ... | ... |
@@ -2893,7 +2889,7 @@ func (s *DockerSuite) TestRunUnshareProc(c *check.C) {
|
| 2893 | 2893 |
c.Skip("unstable test: is apparmor in a container reliable?")
|
| 2894 | 2894 |
|
| 2895 | 2895 |
// Not applicable on Windows as uses Unix specific functionality |
| 2896 |
- testRequires(c, Apparmor, NativeExecDriver, DaemonIsLinux) |
|
| 2896 |
+ testRequires(c, Apparmor, DaemonIsLinux) |
|
| 2897 | 2897 |
|
| 2898 | 2898 |
name := "acidburn" |
| 2899 | 2899 |
if out, _, err := dockerCmdWithError("run", "--name", name, "jess/unshare", "unshare", "-p", "-m", "-f", "-r", "--mount-proc=/proc", "mount"); err == nil || !strings.Contains(out, "Permission denied") {
|
| ... | ... |
@@ -2927,7 +2923,6 @@ func (s *DockerSuite) TestRunPublishPort(c *check.C) {
|
| 2927 | 2927 |
func (s *DockerSuite) TestDevicePermissions(c *check.C) {
|
| 2928 | 2928 |
// Not applicable on Windows as uses Unix specific functionality |
| 2929 | 2929 |
testRequires(c, DaemonIsLinux) |
| 2930 |
- testRequires(c, NativeExecDriver) |
|
| 2931 | 2930 |
const permissions = "crw-rw-rw-" |
| 2932 | 2931 |
out, status := dockerCmd(c, "run", "--device", "/dev/fuse:/dev/fuse:mrw", "busybox:latest", "ls", "-l", "/dev/fuse") |
| 2933 | 2932 |
if status != 0 {
|
| ... | ... |
@@ -2941,7 +2936,6 @@ func (s *DockerSuite) TestDevicePermissions(c *check.C) {
|
| 2941 | 2941 |
func (s *DockerSuite) TestRunCapAddCHOWN(c *check.C) {
|
| 2942 | 2942 |
// Not applicable on Windows as uses Unix specific functionality |
| 2943 | 2943 |
testRequires(c, DaemonIsLinux) |
| 2944 |
- testRequires(c, NativeExecDriver) |
|
| 2945 | 2944 |
out, _ := dockerCmd(c, "run", "--cap-drop=ALL", "--cap-add=CHOWN", "busybox", "sh", "-c", "adduser -D -H newuser && chown newuser /home && echo ok") |
| 2946 | 2945 |
|
| 2947 | 2946 |
if actual := strings.Trim(out, "\r\n"); actual != "ok" {
|
| ... | ... |
@@ -2984,7 +2978,7 @@ func (s *DockerSuite) TestVolumeFromMixedRWOptions(c *check.C) {
|
| 2984 | 2984 |
|
| 2985 | 2985 |
func (s *DockerSuite) TestRunWriteFilteredProc(c *check.C) {
|
| 2986 | 2986 |
// Not applicable on Windows as uses Unix specific functionality |
| 2987 |
- testRequires(c, Apparmor, NativeExecDriver, DaemonIsLinux, NotUserNamespace) |
|
| 2987 |
+ testRequires(c, Apparmor, DaemonIsLinux, NotUserNamespace) |
|
| 2988 | 2988 |
|
| 2989 | 2989 |
testWritePaths := []string{
|
| 2990 | 2990 |
/* modprobe and core_pattern should both be denied by generic |
| ... | ... |
@@ -3253,7 +3247,7 @@ func (s *DockerSuite) TestPtraceContainerProcsFromHost(c *check.C) {
|
| 3253 | 3253 |
|
| 3254 | 3254 |
func (s *DockerSuite) TestAppArmorDeniesPtrace(c *check.C) {
|
| 3255 | 3255 |
// Not applicable on Windows as uses Unix specific functionality |
| 3256 |
- testRequires(c, SameHostDaemon, NativeExecDriver, Apparmor, DaemonIsLinux, NotGCCGO) |
|
| 3256 |
+ testRequires(c, SameHostDaemon, Apparmor, DaemonIsLinux, NotGCCGO) |
|
| 3257 | 3257 |
|
| 3258 | 3258 |
// Run through 'sh' so we are NOT pid 1. Pid 1 may be able to trace |
| 3259 | 3259 |
// itself, but pid>1 should not be able to trace pid1. |
| ... | ... |
@@ -3277,7 +3271,7 @@ func (s *DockerSuite) TestAppArmorDeniesChmodProc(c *check.C) {
|
| 3277 | 3277 |
c.Skip("Test is failing, and what it tests is unclear")
|
| 3278 | 3278 |
|
| 3279 | 3279 |
// Not applicable on Windows as uses Unix specific functionality |
| 3280 |
- testRequires(c, SameHostDaemon, NativeExecDriver, Apparmor, DaemonIsLinux) |
|
| 3280 |
+ testRequires(c, SameHostDaemon, Apparmor, DaemonIsLinux) |
|
| 3281 | 3281 |
_, exitCode, _ := dockerCmdWithError("run", "busybox", "chmod", "744", "/proc/cpuinfo")
|
| 3282 | 3282 |
if exitCode == 0 {
|
| 3283 | 3283 |
// If our test failed, attempt to repair the host system... |
| ... | ... |
@@ -3290,7 +3284,7 @@ func (s *DockerSuite) TestAppArmorDeniesChmodProc(c *check.C) {
|
| 3290 | 3290 |
|
| 3291 | 3291 |
func (s *DockerSuite) TestRunCapAddSYSTIME(c *check.C) {
|
| 3292 | 3292 |
// Not applicable on Windows as uses Unix specific functionality |
| 3293 |
- testRequires(c, DaemonIsLinux, NativeExecDriver) |
|
| 3293 |
+ testRequires(c, DaemonIsLinux) |
|
| 3294 | 3294 |
|
| 3295 | 3295 |
dockerCmd(c, "run", "--cap-drop=ALL", "--cap-add=SYS_TIME", "busybox", "sh", "-c", "grep ^CapEff /proc/self/status | sed 's/^CapEff:\t//' | grep ^0000000002000000$") |
| 3296 | 3296 |
} |
| ... | ... |
@@ -3327,7 +3321,7 @@ func (s *DockerSuite) TestRunNamedVolume(c *check.C) {
|
| 3327 | 3327 |
|
| 3328 | 3328 |
func (s *DockerSuite) TestRunWithUlimits(c *check.C) {
|
| 3329 | 3329 |
// Not applicable on Windows as uses Unix specific functionality |
| 3330 |
- testRequires(c, DaemonIsLinux, NativeExecDriver) |
|
| 3330 |
+ testRequires(c, DaemonIsLinux) |
|
| 3331 | 3331 |
|
| 3332 | 3332 |
out, _ := dockerCmd(c, "run", "--name=testulimits", "--ulimit", "nofile=42", "busybox", "/bin/sh", "-c", "ulimit -n") |
| 3333 | 3333 |
ul := strings.TrimSpace(out) |
| ... | ... |
@@ -3338,7 +3332,7 @@ func (s *DockerSuite) TestRunWithUlimits(c *check.C) {
|
| 3338 | 3338 |
|
| 3339 | 3339 |
func (s *DockerSuite) TestRunContainerWithCgroupParent(c *check.C) {
|
| 3340 | 3340 |
// Not applicable on Windows as uses Unix specific functionality |
| 3341 |
- testRequires(c, DaemonIsLinux, NativeExecDriver) |
|
| 3341 |
+ testRequires(c, DaemonIsLinux) |
|
| 3342 | 3342 |
|
| 3343 | 3343 |
cgroupParent := "test" |
| 3344 | 3344 |
name := "cgroup-test" |
| ... | ... |
@@ -3368,7 +3362,7 @@ func (s *DockerSuite) TestRunContainerWithCgroupParent(c *check.C) {
|
| 3368 | 3368 |
|
| 3369 | 3369 |
func (s *DockerSuite) TestRunContainerWithCgroupParentAbsPath(c *check.C) {
|
| 3370 | 3370 |
// Not applicable on Windows as uses Unix specific functionality |
| 3371 |
- testRequires(c, DaemonIsLinux, NativeExecDriver) |
|
| 3371 |
+ testRequires(c, DaemonIsLinux) |
|
| 3372 | 3372 |
|
| 3373 | 3373 |
cgroupParent := "/cgroup-parent/test" |
| 3374 | 3374 |
name := "cgroup-test" |
| ... | ... |
@@ -3398,7 +3392,7 @@ func (s *DockerSuite) TestRunContainerWithCgroupParentAbsPath(c *check.C) {
|
| 3398 | 3398 |
func (s *DockerSuite) TestRunContainerWithCgroupMountRO(c *check.C) {
|
| 3399 | 3399 |
// Not applicable on Windows as uses Unix specific functionality |
| 3400 | 3400 |
// --read-only + userns has remount issues |
| 3401 |
- testRequires(c, DaemonIsLinux, NativeExecDriver, NotUserNamespace) |
|
| 3401 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 3402 | 3402 |
|
| 3403 | 3403 |
filename := "/sys/fs/cgroup/devices/test123" |
| 3404 | 3404 |
out, _, err := dockerCmdWithError("run", "busybox", "touch", filename)
|
| ... | ... |
@@ -3553,7 +3547,7 @@ func (s *DockerSuite) TestContainersInUserDefinedNetwork(c *check.C) {
|
| 3553 | 3553 |
} |
| 3554 | 3554 |
|
| 3555 | 3555 |
func (s *DockerSuite) TestContainersInMultipleNetworks(c *check.C) {
|
| 3556 |
- testRequires(c, DaemonIsLinux, NotUserNamespace, NativeExecDriver) |
|
| 3556 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 3557 | 3557 |
// Create 2 networks using bridge driver |
| 3558 | 3558 |
dockerCmd(c, "network", "create", "-d", "bridge", "testnetwork1") |
| 3559 | 3559 |
dockerCmd(c, "network", "create", "-d", "bridge", "testnetwork2") |
| ... | ... |
@@ -3572,7 +3566,7 @@ func (s *DockerSuite) TestContainersInMultipleNetworks(c *check.C) {
|
| 3572 | 3572 |
} |
| 3573 | 3573 |
|
| 3574 | 3574 |
func (s *DockerSuite) TestContainersNetworkIsolation(c *check.C) {
|
| 3575 |
- testRequires(c, DaemonIsLinux, NotUserNamespace, NativeExecDriver) |
|
| 3575 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 3576 | 3576 |
// Create 2 networks using bridge driver |
| 3577 | 3577 |
dockerCmd(c, "network", "create", "-d", "bridge", "testnetwork1") |
| 3578 | 3578 |
dockerCmd(c, "network", "create", "-d", "bridge", "testnetwork2") |
| ... | ... |
@@ -3617,7 +3611,7 @@ func (s *DockerSuite) TestNetworkRmWithActiveContainers(c *check.C) {
|
| 3617 | 3617 |
} |
| 3618 | 3618 |
|
| 3619 | 3619 |
func (s *DockerSuite) TestContainerRestartInMultipleNetworks(c *check.C) {
|
| 3620 |
- testRequires(c, DaemonIsLinux, NotUserNamespace, NativeExecDriver) |
|
| 3620 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 3621 | 3621 |
// Create 2 networks using bridge driver |
| 3622 | 3622 |
dockerCmd(c, "network", "create", "-d", "bridge", "testnetwork1") |
| 3623 | 3623 |
dockerCmd(c, "network", "create", "-d", "bridge", "testnetwork2") |
| ... | ... |
@@ -92,7 +92,7 @@ func (s *DockerSuite) TestRunWithVolumesIsRecursive(c *check.C) {
|
| 92 | 92 |
} |
| 93 | 93 |
|
| 94 | 94 |
func (s *DockerSuite) TestRunDeviceDirectory(c *check.C) {
|
| 95 |
- testRequires(c, NativeExecDriver, NotUserNamespace) |
|
| 95 |
+ testRequires(c, DaemonIsLinux, NotUserNamespace) |
|
| 96 | 96 |
if _, err := os.Stat("/dev/snd"); err != nil {
|
| 97 | 97 |
c.Skip("Host does not have /dev/snd")
|
| 98 | 98 |
} |
| ... | ... |
@@ -314,7 +314,7 @@ func (s *DockerSuite) TestRunEchoStdoutWithMemoryLimit(c *check.C) {
|
| 314 | 314 |
// 16M memory and as much swap memory as they need (if the host |
| 315 | 315 |
// supports swap memory). |
| 316 | 316 |
func (s *DockerSuite) TestRunWithoutMemoryswapLimit(c *check.C) {
|
| 317 |
- testRequires(c, NativeExecDriver) |
|
| 317 |
+ testRequires(c, DaemonIsLinux) |
|
| 318 | 318 |
testRequires(c, memoryLimitSupport) |
| 319 | 319 |
testRequires(c, swapMemorySupport) |
| 320 | 320 |
dockerCmd(c, "run", "-m", "16m", "--memory-swap", "-1", "busybox", "true") |
| ... | ... |
@@ -420,7 +420,7 @@ func (s *DockerSuite) TestRunInvalidCpusetMemsFlagValue(c *check.C) {
|
| 420 | 420 |
} |
| 421 | 421 |
|
| 422 | 422 |
func (s *DockerSuite) TestRunInvalidCPUShares(c *check.C) {
|
| 423 |
- testRequires(c, cpuShare, NativeExecDriver) |
|
| 423 |
+ testRequires(c, cpuShare, DaemonIsLinux) |
|
| 424 | 424 |
out, _, err := dockerCmdWithError("run", "--cpu-shares", "1", "busybox", "echo", "test")
|
| 425 | 425 |
c.Assert(err, check.NotNil, check.Commentf(out)) |
| 426 | 426 |
expected := "The minimum allowed cpu-shares is 2" |
| ... | ... |
@@ -229,9 +229,6 @@ func (d *Daemon) Start(arg ...string) error {
|
| 229 | 229 |
if d.storageDriver != "" {
|
| 230 | 230 |
args = append(args, "--storage-driver", d.storageDriver) |
| 231 | 231 |
} |
| 232 |
- if d.execDriver != "" {
|
|
| 233 |
- args = append(args, "--exec-driver", d.execDriver) |
|
| 234 |
- } |
|
| 235 | 232 |
|
| 236 | 233 |
args = append(args, arg...) |
| 237 | 234 |
d.cmd = exec.Command(dockerBinary, args...) |
| ... | ... |
@@ -1,10 +1,8 @@ |
| 1 | 1 |
package main |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 |
- "encoding/json" |
|
| 5 | 4 |
"fmt" |
| 6 | 5 |
"io/ioutil" |
| 7 |
- "log" |
|
| 8 | 6 |
"net/http" |
| 9 | 7 |
"os" |
| 10 | 8 |
"os/exec" |
| ... | ... |
@@ -23,8 +21,6 @@ type testRequirement struct {
|
| 23 | 23 |
|
| 24 | 24 |
// List test requirements |
| 25 | 25 |
var ( |
| 26 |
- daemonExecDriver string |
|
| 27 |
- |
|
| 28 | 26 |
DaemonIsWindows = testRequirement{
|
| 29 | 27 |
func() bool { return daemonPlatform == "windows" },
|
| 30 | 28 |
"Test requires a Windows daemon", |
| ... | ... |
@@ -105,30 +101,6 @@ var ( |
| 105 | 105 |
}, |
| 106 | 106 |
fmt.Sprintf("Test requires an environment that can host %s in the same host", notaryBinary),
|
| 107 | 107 |
} |
| 108 |
- NativeExecDriver = testRequirement{
|
|
| 109 |
- func() bool {
|
|
| 110 |
- if daemonExecDriver == "" {
|
|
| 111 |
- // get daemon info |
|
| 112 |
- status, body, err := sockRequest("GET", "/info", nil)
|
|
| 113 |
- if err != nil || status != http.StatusOK {
|
|
| 114 |
- log.Fatalf("sockRequest failed for /info: %v", err)
|
|
| 115 |
- } |
|
| 116 |
- |
|
| 117 |
- type infoJSON struct {
|
|
| 118 |
- ExecutionDriver string |
|
| 119 |
- } |
|
| 120 |
- var info infoJSON |
|
| 121 |
- if err = json.Unmarshal(body, &info); err != nil {
|
|
| 122 |
- log.Fatalf("unable to unmarshal body: %v", err)
|
|
| 123 |
- } |
|
| 124 |
- |
|
| 125 |
- daemonExecDriver = info.ExecutionDriver |
|
| 126 |
- } |
|
| 127 |
- |
|
| 128 |
- return strings.HasPrefix(daemonExecDriver, "native") |
|
| 129 |
- }, |
|
| 130 |
- "Test requires the native (libcontainer) exec driver.", |
|
| 131 |
- } |
|
| 132 | 108 |
NotOverlay = testRequirement{
|
| 133 | 109 |
func() bool {
|
| 134 | 110 |
cmd := exec.Command("grep", "^overlay / overlay", "/proc/mounts")
|
| ... | ... |
@@ -20,7 +20,6 @@ docker-daemon - Enable daemon mode |
| 20 | 20 |
[**--dns**[=*[]*]] |
| 21 | 21 |
[**--dns-opt**[=*[]*]] |
| 22 | 22 |
[**--dns-search**[=*[]*]] |
| 23 |
-[**-e**|**--exec-driver**[=*native*]] |
|
| 24 | 23 |
[**--exec-opt**[=*[]*]] |
| 25 | 24 |
[**--exec-root**[=*/var/run/docker*]] |
| 26 | 25 |
[**--fixed-cidr**[=*FIXED-CIDR*]] |
| ... | ... |
@@ -112,9 +111,6 @@ format. |
| 112 | 112 |
**--dns-search**=[] |
| 113 | 113 |
DNS search domains to use. |
| 114 | 114 |
|
| 115 |
-**-e**, **--exec-driver**="" |
|
| 116 |
- Force Docker to use specific exec driver. Default is `native`. |
|
| 117 |
- |
|
| 118 | 115 |
**--exec-opt**=[] |
| 119 | 116 |
Set exec driver options. See EXEC DRIVER OPTIONS. |
| 120 | 117 |
|
| ... | ... |
@@ -225,8 +225,8 @@ inside it) |
| 225 | 225 |
|
| 226 | 226 |
# EXEC DRIVER OPTIONS |
| 227 | 227 |
|
| 228 |
-Use the **--exec-opt** flags to specify options to the exec-driver. The only |
|
| 229 |
-driver that accepts this flag is the *native* (libcontainer) driver. As a |
|
| 228 |
+Use the **--exec-opt** flags to specify options to the execution driver. The only |
|
| 229 |
+runtime that accepts any options is Linux. As a |
|
| 230 | 230 |
result, you must also specify **-s=**native for this option to have effect. The |
| 231 | 231 |
following is the only *native* option: |
| 232 | 232 |
|