diff --git a/integration/network/dns_test.go b/integration/network/dns_test.go new file mode 100644 index 0000000000..9e7e7e24de --- /dev/null +++ b/integration/network/dns_test.go @@ -0,0 +1,35 @@ +package network // import "github.com/docker/docker/integration/network" + +import ( + "context" + "testing" + "time" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/integration/internal/container" + "github.com/docker/docker/integration/internal/network" + "github.com/docker/docker/internal/test/daemon" + "gotest.tools/poll" + "gotest.tools/skip" +) + +func TestDaemonDNSFallback(t *testing.T) { + skip.If(t, testEnv.IsRemoteDaemon, "cannot start daemon on remote test run") + skip.If(t, testEnv.DaemonInfo.OSType != "linux") + skip.If(t, IsUserNamespace()) + + d := daemon.New(t) + d.StartWithBusybox(t, "-b", "none", "--dns", "127.127.127.1", "--dns", "8.8.8.8") + defer d.Stop(t) + + c := d.NewClientT(t) + ctx := context.Background() + + network.CreateNoError(ctx, t, c, "test") + defer c.NetworkRemove(ctx, "test") + + cid := container.Run(ctx, t, c, container.WithNetworkMode("test"), container.WithCmd("nslookup", "docker.com")) + defer c.ContainerRemove(ctx, cid, types.ContainerRemoveOptions{Force: true}) + + poll.WaitOn(t, container.IsSuccessful(ctx, c, cid), poll.WithDelay(100*time.Millisecond), poll.WithTimeout(2*time.Second)) +}