Browse code

Fix typos

Signed-off-by: Nathan Baulch <nathan.baulch@gmail.com>

Nathan Baulch authored on 2024/08/28 08:17:49
Showing 116 changed files
... ...
@@ -57,7 +57,7 @@ jobs:
57 57
           ## push semver tag v23.0.0
58 58
           # moby/moby-bin:23.0.0
59 59
           # moby/moby-bin:latest
60
-          ## push semver prelease tag v23.0.0-beta.1
60
+          ## push semver prerelease tag v23.0.0-beta.1
61 61
           # moby/moby-bin:23.0.0-beta.1
62 62
           ## push on master
63 63
           # moby/moby-bin:master
... ...
@@ -94,7 +94,7 @@ issues:
94 94
     # (unlike the "include" option), the "exclude" option does not take exclusion
95 95
     # ID's.
96 96
     #
97
-    # These exclusion patterns are copied from the default excluses at:
97
+    # These exclusion patterns are copied from the default excludes at:
98 98
     # https://github.com/golangci/golangci-lint/blob/v1.46.2/pkg/config/issues.go#L10-L104
99 99
 
100 100
     # EXC0001
... ...
@@ -90,7 +90,7 @@ DOCKER_ENVS := \
90 90
 # note: BINDDIR is supported for backwards-compatibility here
91 91
 BIND_DIR := $(if $(BINDDIR),$(BINDDIR),$(if $(DOCKER_HOST),,bundles))
92 92
 
93
-# DOCKER_MOUNT can be overriden, but use at your own risk!
93
+# DOCKER_MOUNT can be overridden, but use at your own risk!
94 94
 ifndef DOCKER_MOUNT
95 95
 DOCKER_MOUNT := $(if $(BIND_DIR),-v "$(CURDIR)/$(BIND_DIR):/go/src/github.com/docker/docker/$(BIND_DIR)")
96 96
 DOCKER_MOUNT := $(if $(DOCKER_BINDDIR_MOUNT_OPTS),$(DOCKER_MOUNT):$(DOCKER_BINDDIR_MOUNT_OPTS),$(DOCKER_MOUNT))
... ...
@@ -75,13 +75,13 @@ func (e invalidRequestError) Error() string {
75 75
 
76 76
 func (e invalidRequestError) InvalidParameter() {}
77 77
 
78
-type ambigousResultsError string
78
+type ambiguousResultsError string
79 79
 
80
-func (e ambigousResultsError) Error() string {
80
+func (e ambiguousResultsError) Error() string {
81 81
 	return "network " + string(e) + " is ambiguous"
82 82
 }
83 83
 
84
-func (ambigousResultsError) InvalidParameter() {}
84
+func (ambiguousResultsError) InvalidParameter() {}
85 85
 
86 86
 func (n *networkRouter) getNetwork(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
87 87
 	if err := httputils.ParseForm(r); err != nil {
... ...
@@ -182,7 +182,7 @@ func (n *networkRouter) getNetwork(ctx context.Context, w http.ResponseWriter, r
182 182
 		}
183 183
 	}
184 184
 	if len(listByFullName) > 1 {
185
-		return errors.Wrapf(ambigousResultsError(term), "%d matches found based on name", len(listByFullName))
185
+		return errors.Wrapf(ambiguousResultsError(term), "%d matches found based on name", len(listByFullName))
186 186
 	}
187 187
 
188 188
 	// Find based on partial ID, returns true only if no duplicates
... ...
@@ -192,7 +192,7 @@ func (n *networkRouter) getNetwork(ctx context.Context, w http.ResponseWriter, r
192 192
 		}
193 193
 	}
194 194
 	if len(listByPartialID) > 1 {
195
-		return errors.Wrapf(ambigousResultsError(term), "%d matches found based on ID prefix", len(listByPartialID))
195
+		return errors.Wrapf(ambiguousResultsError(term), "%d matches found based on ID prefix", len(listByPartialID))
196 196
 	}
197 197
 
198 198
 	return libnetwork.ErrNoSuchNetwork(term)
... ...
@@ -393,7 +393,7 @@ definitions:
393 393
                Make the mount non-recursively read-only, but still leave the mount recursive
394 394
                (unless NonRecursive is set to `true` in conjunction).
395 395
 
396
-               Addded in v1.44, before that version all read-only mounts were
396
+               Added in v1.44, before that version all read-only mounts were
397 397
                non-recursive by default. To match the previous behaviour this
398 398
                will default to `true` for clients on versions prior to v1.44.
399 399
             type: "boolean"
... ...
@@ -2216,7 +2216,7 @@ definitions:
2216 2216
       Created:
2217 2217
         description: |
2218 2218
           Date and time at which the image was created as a Unix timestamp
2219
-          (number of seconds sinds EPOCH).
2219
+          (number of seconds since EPOCH).
2220 2220
         type: "integer"
2221 2221
         x-nullable: false
2222 2222
         example: "1644009612"
... ...
@@ -2518,7 +2518,7 @@ definitions:
2518 2518
         example: false
2519 2519
       Attachable:
2520 2520
         description: |
2521
-          Wheter a global / swarm scope network is manually attachable by regular
2521
+          Whether a global / swarm scope network is manually attachable by regular
2522 2522
           containers from workers in swarm mode.
2523 2523
         type: "boolean"
2524 2524
         default: false
... ...
@@ -3741,7 +3741,7 @@ definitions:
3741 3741
                 example: "json-file"
3742 3742
               Options:
3743 3743
                 description: |
3744
-                  Driver-specific options for the selectd log driver, specified
3744
+                  Driver-specific options for the selected log driver, specified
3745 3745
                   as key/value pairs.
3746 3746
                 type: "object"
3747 3747
                 additionalProperties:
... ...
@@ -7717,7 +7717,7 @@ paths:
7717 7717
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7718 7718
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7719 7719
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7720
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7720
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7721 7721
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7722 7722
       operationId: "ContainerStats"
7723 7723
       produces: ["application/json"]
... ...
@@ -196,7 +196,7 @@ func (args Args) Match(field, source string) bool {
196 196
 }
197 197
 
198 198
 // GetBoolOrDefault returns a boolean value of the key if the key is present
199
-// and is intepretable as a boolean value. Otherwise the default value is returned.
199
+// and is interpretable as a boolean value. Otherwise the default value is returned.
200 200
 // Error is not nil only if the filter values are not valid boolean or are conflicting.
201 201
 func (args Args) GetBoolOrDefault(key string, defaultValue bool) (bool, error) {
202 202
 	fieldValues, ok := args.fields[key]
... ...
@@ -12,7 +12,7 @@ type Summary struct {
12 12
 	Containers int64 `json:"Containers"`
13 13
 
14 14
 	// Date and time at which the image was created as a Unix timestamp
15
-	// (number of seconds sinds EPOCH).
15
+	// (number of seconds since EPOCH).
16 16
 	//
17 17
 	// Required: true
18 18
 	Created int64 `json:"Created"`
... ...
@@ -122,7 +122,7 @@ type CAConfig struct {
122 122
 	SigningCAKey  string `json:",omitempty"`
123 123
 
124 124
 	// If this value changes, and there is no specified signing cert and key,
125
-	// then the swarm is forced to generate a new root certificate ane key.
125
+	// then the swarm is forced to generate a new root certificate and key.
126 126
 	ForceRotate uint64 `json:",omitempty"`
127 127
 }
128 128
 
... ...
@@ -414,7 +414,7 @@ type Info struct {
414 414
 	// the Volume has not been successfully created yet.
415 415
 	VolumeID string `json:",omitempty"`
416 416
 
417
-	// AccessibleTopolgoy is the topology this volume is actually accessible
417
+	// AccessibleTopology is the topology this volume is actually accessible
418 418
 	// from.
419 419
 	AccessibleTopology []Topology `json:",omitempty"`
420 420
 }
... ...
@@ -270,7 +270,7 @@ func (cli *DaemonCli) start(opts *daemonOptions) (err error) {
270 270
 	}
271 271
 
272 272
 	// Note that CDI is not inherently linux-specific, there are some linux-specific assumptions / implementations in the code that
273
-	// queries the properties of device on the host as wel as performs the injection of device nodes and their access permissions into the OCI spec.
273
+	// queries the properties of device on the host as well as performs the injection of device nodes and their access permissions into the OCI spec.
274 274
 	//
275 275
 	// In order to lift this restriction the following would have to be addressed:
276 276
 	// - Support needs to be added to the cdi package for injecting Windows devices: https://tags.cncf.io/container-device-interface/issues/28
... ...
@@ -325,7 +325,7 @@ func (container *Container) SetupWorkingDirectory(rootIdentity idtools.Identity)
325 325
 }
326 326
 
327 327
 // GetResourcePath evaluates `path` in the scope of the container's BaseFS, with proper path
328
-// sanitisation. Symlinks are all scoped to the BaseFS of the container, as
328
+// sanitization. Symlinks are all scoped to the BaseFS of the container, as
329 329
 // though the container's BaseFS was `/`.
330 330
 //
331 331
 // The BaseFS of a container is the host-facing path which is bind-mounted as
... ...
@@ -368,7 +368,7 @@ func cleanScopedPath(path string) string {
368 368
 }
369 369
 
370 370
 // GetRootResourcePath evaluates `path` in the scope of the container's root, with proper path
371
-// sanitisation. Symlinks are all scoped to the root of the container, as
371
+// sanitization. Symlinks are all scoped to the root of the container, as
372 372
 // though the container's root was `/`.
373 373
 //
374 374
 // The root of a container is the host-facing configuration metadata directory.
... ...
@@ -34,7 +34,7 @@ func newCDIDeviceDriver(cdiSpecDirs ...string) *deviceDriver {
34 34
 		// We create a spec updater that always returns an error.
35 35
 		// This error will be returned only when a CDI device is requested.
36 36
 		// This ensures that daemon startup is not blocked by a CDI registry initialization failure or being disabled
37
-		// by configuratrion.
37
+		// by configuration.
38 38
 		errorOnUpdateSpec := func(s *specs.Spec, dev *deviceInstance) error {
39 39
 			return fmt.Errorf("CDI device injection failed: %w", err)
40 40
 		}
... ...
@@ -396,7 +396,7 @@ func TestServiceConvertFromGRPCCredentialSpec(t *testing.T) {
396 396
 	}
397 397
 }
398 398
 
399
-func TestServiceConvertToGRPCNetworkAtachmentRuntime(t *testing.T) {
399
+func TestServiceConvertToGRPCNetworkAttachmentRuntime(t *testing.T) {
400 400
 	someid := "asfjkl"
401 401
 	s := swarmtypes.ServiceSpec{
402 402
 		TaskTemplate: swarmtypes.TaskSpec{
... ...
@@ -19,7 +19,7 @@ func TestWaitNodeAttachment(t *testing.T) {
19 19
 	// and add some attachments to it
20 20
 	attachmentStore := emptyDaemon.GetAttachmentStore()
21 21
 
22
-	// create a set of attachments to put into the attahcment store
22
+	// create a set of attachments to put into the attachment store
23 23
 	attachments := map[string]string{
24 24
 		"network1": "10.1.2.3/24",
25 25
 	}
... ...
@@ -327,7 +327,7 @@ func (i *ImageService) unpackImage(ctx context.Context, snapshotter string, img
327 327
 	return nil
328 328
 }
329 329
 
330
-// detectCompression dectects the reader compression type.
330
+// detectCompression detects the reader compression type.
331 331
 func detectCompression(bufRd *bufio.Reader) (archive.Compression, error) {
332 332
 	bs, err := bufRd.Peek(10)
333 333
 	if err != nil && err != io.EOF {
... ...
@@ -125,7 +125,7 @@ func (i *ImageService) LayerStoreStatus() [][2]string {
125 125
 }
126 126
 
127 127
 // GetLayerMountID returns the mount ID for a layer
128
-// called from daemon.go Daemon.Shutdown(), and Daemon.Cleanup() (cleanup is actually continerCleanup)
128
+// called from daemon.go Daemon.Shutdown(), and Daemon.Cleanup() (cleanup is actually containerCleanup)
129 129
 // TODO: needs to be refactored to Unmount (see callers), or removed and replaced with GetLayerByID
130 130
 func (i *ImageService) GetLayerMountID(cid string) (string, error) {
131 131
 	return "", errdefs.NotImplemented(errors.New("not implemented"))
... ...
@@ -181,7 +181,7 @@ func (daemon *Daemon) openContainerFS(ctr *container.Container) (_ *containerFSV
181 181
 	return vw, nil
182 182
 }
183 183
 
184
-// RunInFS synchronously runs fn in the context of the container filesytem and
184
+// RunInFS synchronously runs fn in the context of the container filesystem and
185 185
 // passes through its return value.
186 186
 //
187 187
 // The container filesystem is only visible to functions called in the same
... ...
@@ -266,7 +266,7 @@ func (daemon *Daemon) restore(cfg *configStore) error {
266 266
 	}
267 267
 
268 268
 	// parallelLimit is the maximum number of parallel startup jobs that we
269
-	// allow (this is the limited used for all startup semaphores). The multipler
269
+	// allow (this is the limited used for all startup semaphores). The multiplier
270 270
 	// (128) was chosen after some fairly significant benchmarking -- don't change
271 271
 	// it unless you've tested it significantly (this value is adjusted if
272 272
 	// RLIMIT_NOFILE is small to avoid EMFILE).
... ...
@@ -712,7 +712,7 @@ func (daemon *Daemon) RestartSwarmContainers() {
712 712
 
713 713
 func (daemon *Daemon) restartSwarmContainers(ctx context.Context, cfg *configStore) {
714 714
 	// parallelLimit is the maximum number of parallel startup jobs that we
715
-	// allow (this is the limited used for all startup semaphores). The multipler
715
+	// allow (this is the limited used for all startup semaphores). The multiplier
716 716
 	// (128) was chosen after some fairly significant benchmarking -- don't change
717 717
 	// it unless you've tested it significantly (this value is adjusted if
718 718
 	// RLIMIT_NOFILE is small to avoid EMFILE).
... ...
@@ -149,7 +149,7 @@ func (i *ImageService) LayerStoreStatus() [][2]string {
149 149
 }
150 150
 
151 151
 // GetLayerMountID returns the mount ID for a layer
152
-// called from daemon.go Daemon.Shutdown(), and Daemon.Cleanup() (cleanup is actually continerCleanup)
152
+// called from daemon.go Daemon.Shutdown(), and Daemon.Cleanup() (cleanup is actually containerCleanup)
153 153
 // TODO: needs to be refactored to Unmount (see callers), or removed and replaced with GetLayerByID
154 154
 func (i *ImageService) GetLayerMountID(cid string) (string, error) {
155 155
 	return i.layerStore.GetMountID(cid)
... ...
@@ -23,7 +23,7 @@ func imageKey(dgst string) string {
23 23
 }
24 24
 
25 25
 // imageStoreWithLease wraps the configured image store with one that deletes the lease
26
-// reigstered for a given image ID, if one exists
26
+// registered for a given image ID, if one exists
27 27
 //
28 28
 // This is used by the main image service to wrap delete calls to the real image store.
29 29
 type imageStoreWithLease struct {
... ...
@@ -43,7 +43,7 @@ func (s *imageStoreWithLease) Delete(id image.ID) ([]layer.Metadata, error) {
43 43
 	return s.Store.Delete(id)
44 44
 }
45 45
 
46
-// iamgeStoreForPull is created for each pull It wraps an underlying image store
46
+// imageStoreForPull is created for each pull It wraps an underlying image store
47 47
 // to handle registering leases for content fetched in a single image pull.
48 48
 type imageStoreForPull struct {
49 49
 	distribution.ImageConfigStore
... ...
@@ -98,7 +98,7 @@ func (s *imageStoreForPull) updateLease(ctx context.Context, dgst digest.Digest)
98 98
 // contentStoreForPull is used to wrap the configured content store to
99 99
 // add lease management for a single `pull`
100 100
 // It stores all committed digests so that `imageStoreForPull` can add
101
-// the digsted resources to the lease for an image.
101
+// the digested resources to the lease for an image.
102 102
 type contentStoreForPull struct {
103 103
 	distribution.ContentStore
104 104
 	leases leases.Manager
... ...
@@ -66,7 +66,7 @@ type Sender struct {
66 66
 	// specified by the SYSLOG_TIMESTAMP variable value. This is roughly
67 67
 	// analogous to journald receiving the event and assigning it a
68 68
 	// timestamp in zero time after the SYSLOG_TIMESTAMP value was set,
69
-	// which is higly unrealistic in practice.
69
+	// which is highly unrealistic in practice.
70 70
 	AssignEventTimestampFromSyslogTimestamp bool
71 71
 	// Boot ID for journal entries. Required by systemd-journal-remote as of
72 72
 	// https://github.com/systemd/systemd/commit/1eede158519e4e5ed22738c90cb57a91dbecb7f2
... ...
@@ -160,7 +160,7 @@ func (r *reader) initialSeekTail() (bool, error) {
160 160
 		// The (filtered) journal has no entries. The tail is the head: all new
161 161
 		// entries which get written into the journal from this point forward
162 162
 		// should be read from the journal. However the read pointer is
163
-		// positioned at a conceptual position which is not condusive to reading
163
+		// positioned at a conceptual position which is not conducive to reading
164 164
 		// those entries. The tail of the journal is resolved to the last entry
165 165
 		// in the journal _at the time of the first successful Previous() call_,
166 166
 		// which means that an arbitrary number of journal entries added in the
... ...
@@ -36,7 +36,7 @@ func TestWriteLog(t *testing.T) {
36 36
 	m2 := logger.Message{Source: "stdout", Timestamp: time.Now().Add(-1 * 20 * time.Minute), Line: []byte("message 2"), PLogMetaData: &backend.PartialLogMetaData{Last: true, ID: "0001", Ordinal: 1}}
37 37
 	m3 := logger.Message{Source: "stderr", Timestamp: time.Now().Add(-1 * 10 * time.Minute), Line: []byte("message 3")}
38 38
 
39
-	// copy the log message because the underying log writer resets the log message and returns it to a buffer pool
39
+	// copy the log message because the underlying log writer resets the log message and returns it to a buffer pool
40 40
 	err = l.Log(copyLogMessage(&m1))
41 41
 	assert.NilError(t, err)
42 42
 	err = l.Log(copyLogMessage(&m2))
... ...
@@ -97,7 +97,7 @@ type Decoder interface {
97 97
 	// Reset resets the decoder
98 98
 	// Reset is called for certain events, such as log rotations
99 99
 	Reset(io.Reader)
100
-	// Decode decodes the next log messeage from the stream
100
+	// Decode decodes the next log message from the stream
101 101
 	Decode() (*logger.Message, error)
102 102
 	// Close signals to the decoder that it can release whatever resources it was using.
103 103
 	Close()
... ...
@@ -12,7 +12,7 @@ import (
12 12
 )
13 13
 
14 14
 func openPluginStream(a *pluginAdapter) (io.WriteCloser, error) {
15
-	// Make sure to also open with read (in addition to write) to avoid borken pipe errors on plugin failure.
15
+	// Make sure to also open with read (in addition to write) to avoid broken pipe errors on plugin failure.
16 16
 	// It is up to the plugin to keep track of pipes that it should re-attach to, however.
17 17
 	// If the plugin doesn't open for reads, then the container will block once the pipe is full.
18 18
 	f, err := fifo.OpenFifo(context.Background(), a.fifoPath, unix.O_RDWR|unix.O_CREAT|unix.O_NONBLOCK, 0o700)
... ...
@@ -205,7 +205,7 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerdtypes.EventType, ei
205 205
 			// with daemon.ContainerExecStart() removing the exec from
206 206
 			// c.ExecCommands. If we win the race, we will find that there is no
207 207
 			// process to clean up. (And ContainerExecStart will clobber the
208
-			// exit code we set.) Prevent a nil-dereferenc panic in that
208
+			// exit code we set.) Prevent a nil-dereference panic in that
209 209
 			// situation to restore the status quo where this is merely a
210 210
 			// logical race condition.
211 211
 			if execConfig.Process != nil {
... ...
@@ -184,7 +184,7 @@ func WithApparmor(c *container.Container) coci.SpecOpts {
184 184
 	}
185 185
 }
186 186
 
187
-// WithCapabilities sets the container's capabilties
187
+// WithCapabilities sets the container's capabilities
188 188
 func WithCapabilities(c *container.Container) coci.SpecOpts {
189 189
 	return func(ctx context.Context, _ coci.Client, _ *containers.Container, s *coci.Spec) error {
190 190
 		capabilities, err := caps.TweakCapabilities(
... ...
@@ -240,7 +240,7 @@ func TestManifestStore(t *testing.T) {
240 240
 		ref, desc, mg, store, cs, teardown := setupTest(t)
241 241
 		defer teardown(t)
242 242
 
243
-		// first add the manifest to the coontent store
243
+		// first add the manifest to the content store
244 244
 		writeManifest(t, cs, desc)
245 245
 
246 246
 		// now do the get
... ...
@@ -78,7 +78,7 @@ info:
78 78
 # The tags on paths define the menu sections in the ReDoc documentation, so
79 79
 # the usage of tags must make sense for that:
80 80
 # - They should be singular, not plural.
81
-# - There should not be too many tags, or the menu becomes unwieldly. For
81
+# - There should not be too many tags, or the menu becomes unwieldy. For
82 82
 #   example, it is preferable to add a path to the "System" tag instead of
83 83
 #   creating a tag with a single path in it.
84 84
 # - The order of tags in this list defines the order in the menu.
... ...
@@ -78,7 +78,7 @@ info:
78 78
 # The tags on paths define the menu sections in the ReDoc documentation, so
79 79
 # the usage of tags must make sense for that:
80 80
 # - They should be singular, not plural.
81
-# - There should not be too many tags, or the menu becomes unwieldly. For
81
+# - There should not be too many tags, or the menu becomes unwieldy. For
82 82
 #   example, it is preferable to add a path to the "System" tag instead of
83 83
 #   creating a tag with a single path in it.
84 84
 # - The order of tags in this list defines the order in the menu.
... ...
@@ -78,7 +78,7 @@ info:
78 78
 # The tags on paths define the menu sections in the ReDoc documentation, so
79 79
 # the usage of tags must make sense for that:
80 80
 # - They should be singular, not plural.
81
-# - There should not be too many tags, or the menu becomes unwieldly. For
81
+# - There should not be too many tags, or the menu becomes unwieldy. For
82 82
 #   example, it is preferable to add a path to the "System" tag instead of
83 83
 #   creating a tag with a single path in it.
84 84
 # - The order of tags in this list defines the order in the menu.
... ...
@@ -1588,7 +1588,7 @@ definitions:
1588 1588
       may not be applied if the version number has changed from the last read. In other words,
1589 1589
       if two update requests specify the same base version, only one of the requests can succeed.
1590 1590
       As a result, two separate update requests that happen at the same time will not
1591
-      unintentially overwrite each other.
1591
+      unintentionally overwrite each other.
1592 1592
     type: "object"
1593 1593
     properties:
1594 1594
       Index:
... ...
@@ -1626,7 +1626,7 @@ definitions:
1626 1626
       may not be applied if the version number has changed from the last read. In other words,
1627 1627
       if two update requests specify the same base version, only one of the requests can succeed.
1628 1628
       As a result, two separate update requests that happen at the same time will not
1629
-      unintentially overwrite each other.
1629
+      unintentionally overwrite each other.
1630 1630
     type: "object"
1631 1631
     properties:
1632 1632
       Index:
... ...
@@ -1647,7 +1647,7 @@ definitions:
1647 1647
       may not be applied if the version number has changed from the last read. In other words,
1648 1648
       if two update requests specify the same base version, only one of the requests can succeed.
1649 1649
       As a result, two separate update requests that happen at the same time will not
1650
-      unintentially overwrite each other.
1650
+      unintentionally overwrite each other.
1651 1651
     type: "object"
1652 1652
     properties:
1653 1653
       Index:
... ...
@@ -1674,7 +1674,7 @@ definitions:
1674 1674
       may not be applied if the version number has changed from the last read. In other words,
1675 1675
       if two update requests specify the same base version, only one of the requests can succeed.
1676 1676
       As a result, two separate update requests that happen at the same time will not
1677
-      unintentially overwrite each other.
1677
+      unintentionally overwrite each other.
1678 1678
     type: "object"
1679 1679
     properties:
1680 1680
       Index:
... ...
@@ -2395,7 +2395,7 @@ definitions:
2395 2395
                 example: "json-file"
2396 2396
               Options:
2397 2397
                 description: |
2398
-                  Driver-specific options for the selectd log driver, specified
2398
+                  Driver-specific options for the selected log driver, specified
2399 2399
                   as key/value pairs.
2400 2400
                 type: "object"
2401 2401
                 additionalProperties:
... ...
@@ -2399,7 +2399,7 @@ definitions:
2399 2399
                 example: "json-file"
2400 2400
               Options:
2401 2401
                 description: |
2402
-                  Driver-specific options for the selectd log driver, specified
2402
+                  Driver-specific options for the selected log driver, specified
2403 2403
                   as key/value pairs.
2404 2404
                 type: "object"
2405 2405
                 additionalProperties:
... ...
@@ -2409,7 +2409,7 @@ definitions:
2409 2409
                 example: "json-file"
2410 2410
               Options:
2411 2411
                 description: |
2412
-                  Driver-specific options for the selectd log driver, specified
2412
+                  Driver-specific options for the selected log driver, specified
2413 2413
                   as key/value pairs.
2414 2414
                 type: "object"
2415 2415
                 additionalProperties:
... ...
@@ -2406,7 +2406,7 @@ definitions:
2406 2406
                 example: "json-file"
2407 2407
               Options:
2408 2408
                 description: |
2409
-                  Driver-specific options for the selectd log driver, specified
2409
+                  Driver-specific options for the selected log driver, specified
2410 2410
                   as key/value pairs.
2411 2411
                 type: "object"
2412 2412
                 additionalProperties:
... ...
@@ -2419,7 +2419,7 @@ definitions:
2419 2419
                 example: "json-file"
2420 2420
               Options:
2421 2421
                 description: |
2422
-                  Driver-specific options for the selectd log driver, specified
2422
+                  Driver-specific options for the selected log driver, specified
2423 2423
                   as key/value pairs.
2424 2424
                 type: "object"
2425 2425
                 additionalProperties:
... ...
@@ -2422,7 +2422,7 @@ definitions:
2422 2422
                 example: "json-file"
2423 2423
               Options:
2424 2424
                 description: |
2425
-                  Driver-specific options for the selectd log driver, specified
2425
+                  Driver-specific options for the selected log driver, specified
2426 2426
                   as key/value pairs.
2427 2427
                 type: "object"
2428 2428
                 additionalProperties:
... ...
@@ -2440,7 +2440,7 @@ definitions:
2440 2440
                 example: "json-file"
2441 2441
               Options:
2442 2442
                 description: |
2443
-                  Driver-specific options for the selectd log driver, specified
2443
+                  Driver-specific options for the selected log driver, specified
2444 2444
                   as key/value pairs.
2445 2445
                 type: "object"
2446 2446
                 additionalProperties:
... ...
@@ -2043,7 +2043,7 @@ definitions:
2043 2043
       Created:
2044 2044
         description: |
2045 2045
           Date and time at which the image was created as a Unix timestamp
2046
-          (number of seconds sinds EPOCH).
2046
+          (number of seconds since EPOCH).
2047 2047
         type: "integer"
2048 2048
         x-nullable: false
2049 2049
         example: "1644009612"
... ...
@@ -3393,7 +3393,7 @@ definitions:
3393 3393
                 example: "json-file"
3394 3394
               Options:
3395 3395
                 description: |
3396
-                  Driver-specific options for the selectd log driver, specified
3396
+                  Driver-specific options for the selected log driver, specified
3397 3397
                   as key/value pairs.
3398 3398
                 type: "object"
3399 3399
                 additionalProperties:
... ...
@@ -6497,7 +6497,7 @@ paths:
6497 6497
         * Memory usage % = `(used_memory / available_memory) * 100.0`
6498 6498
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
6499 6499
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
6500
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
6500
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
6501 6501
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
6502 6502
       operationId: "ContainerStats"
6503 6503
       produces: ["application/json"]
... ...
@@ -2103,7 +2103,7 @@ definitions:
2103 2103
       Created:
2104 2104
         description: |
2105 2105
           Date and time at which the image was created as a Unix timestamp
2106
-          (number of seconds sinds EPOCH).
2106
+          (number of seconds since EPOCH).
2107 2107
         type: "integer"
2108 2108
         x-nullable: false
2109 2109
         example: "1644009612"
... ...
@@ -3472,7 +3472,7 @@ definitions:
3472 3472
                 example: "json-file"
3473 3473
               Options:
3474 3474
                 description: |
3475
-                  Driver-specific options for the selectd log driver, specified
3475
+                  Driver-specific options for the selected log driver, specified
3476 3476
                   as key/value pairs.
3477 3477
                 type: "object"
3478 3478
                 additionalProperties:
... ...
@@ -6803,7 +6803,7 @@ paths:
6803 6803
         * Memory usage % = `(used_memory / available_memory) * 100.0`
6804 6804
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
6805 6805
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
6806
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
6806
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
6807 6807
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
6808 6808
       operationId: "ContainerStats"
6809 6809
       produces: ["application/json"]
... ...
@@ -2134,7 +2134,7 @@ definitions:
2134 2134
       Created:
2135 2135
         description: |
2136 2136
           Date and time at which the image was created as a Unix timestamp
2137
-          (number of seconds sinds EPOCH).
2137
+          (number of seconds since EPOCH).
2138 2138
         type: "integer"
2139 2139
         x-nullable: false
2140 2140
         example: "1644009612"
... ...
@@ -2420,7 +2420,7 @@ definitions:
2420 2420
         example: false
2421 2421
       Attachable:
2422 2422
         description: |
2423
-          Wheter a global / swarm scope network is manually attachable by regular
2423
+          Whether a global / swarm scope network is manually attachable by regular
2424 2424
           containers from workers in swarm mode.
2425 2425
         type: "boolean"
2426 2426
         default: false
... ...
@@ -3599,7 +3599,7 @@ definitions:
3599 3599
                 example: "json-file"
3600 3600
               Options:
3601 3601
                 description: |
3602
-                  Driver-specific options for the selectd log driver, specified
3602
+                  Driver-specific options for the selected log driver, specified
3603 3603
                   as key/value pairs.
3604 3604
                 type: "object"
3605 3605
                 additionalProperties:
... ...
@@ -7085,7 +7085,7 @@ paths:
7085 7085
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7086 7086
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7087 7087
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7088
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7088
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7089 7089
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7090 7090
       operationId: "ContainerStats"
7091 7091
       produces: ["application/json"]
... ...
@@ -2137,7 +2137,7 @@ definitions:
2137 2137
       Created:
2138 2138
         description: |
2139 2139
           Date and time at which the image was created as a Unix timestamp
2140
-          (number of seconds sinds EPOCH).
2140
+          (number of seconds since EPOCH).
2141 2141
         type: "integer"
2142 2142
         x-nullable: false
2143 2143
         example: "1644009612"
... ...
@@ -2428,7 +2428,7 @@ definitions:
2428 2428
         example: false
2429 2429
       Attachable:
2430 2430
         description: |
2431
-          Wheter a global / swarm scope network is manually attachable by regular
2431
+          Whether a global / swarm scope network is manually attachable by regular
2432 2432
           containers from workers in swarm mode.
2433 2433
         type: "boolean"
2434 2434
         default: false
... ...
@@ -3618,7 +3618,7 @@ definitions:
3618 3618
                 example: "json-file"
3619 3619
               Options:
3620 3620
                 description: |
3621
-                  Driver-specific options for the selectd log driver, specified
3621
+                  Driver-specific options for the selected log driver, specified
3622 3622
                   as key/value pairs.
3623 3623
                 type: "object"
3624 3624
                 additionalProperties:
... ...
@@ -7304,7 +7304,7 @@ paths:
7304 7304
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7305 7305
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7306 7306
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7307
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7307
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7308 7308
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7309 7309
       operationId: "ContainerStats"
7310 7310
       produces: ["application/json"]
... ...
@@ -2170,7 +2170,7 @@ definitions:
2170 2170
       Created:
2171 2171
         description: |
2172 2172
           Date and time at which the image was created as a Unix timestamp
2173
-          (number of seconds sinds EPOCH).
2173
+          (number of seconds since EPOCH).
2174 2174
         type: "integer"
2175 2175
         x-nullable: false
2176 2176
         example: "1644009612"
... ...
@@ -2459,7 +2459,7 @@ definitions:
2459 2459
         example: false
2460 2460
       Attachable:
2461 2461
         description: |
2462
-          Wheter a global / swarm scope network is manually attachable by regular
2462
+          Whether a global / swarm scope network is manually attachable by regular
2463 2463
           containers from workers in swarm mode.
2464 2464
         type: "boolean"
2465 2465
         default: false
... ...
@@ -3649,7 +3649,7 @@ definitions:
3649 3649
                 example: "json-file"
3650 3650
               Options:
3651 3651
                 description: |
3652
-                  Driver-specific options for the selectd log driver, specified
3652
+                  Driver-specific options for the selected log driver, specified
3653 3653
                   as key/value pairs.
3654 3654
                 type: "object"
3655 3655
                 additionalProperties:
... ...
@@ -7322,7 +7322,7 @@ paths:
7322 7322
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7323 7323
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7324 7324
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7325
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7325
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7326 7326
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7327 7327
       operationId: "ContainerStats"
7328 7328
       produces: ["application/json"]
... ...
@@ -2202,7 +2202,7 @@ definitions:
2202 2202
       Created:
2203 2203
         description: |
2204 2204
           Date and time at which the image was created as a Unix timestamp
2205
-          (number of seconds sinds EPOCH).
2205
+          (number of seconds since EPOCH).
2206 2206
         type: "integer"
2207 2207
         x-nullable: false
2208 2208
         example: "1644009612"
... ...
@@ -2486,7 +2486,7 @@ definitions:
2486 2486
         example: false
2487 2487
       Attachable:
2488 2488
         description: |
2489
-          Wheter a global / swarm scope network is manually attachable by regular
2489
+          Whether a global / swarm scope network is manually attachable by regular
2490 2490
           containers from workers in swarm mode.
2491 2491
         type: "boolean"
2492 2492
         default: false
... ...
@@ -3691,7 +3691,7 @@ definitions:
3691 3691
                 example: "json-file"
3692 3692
               Options:
3693 3693
                 description: |
3694
-                  Driver-specific options for the selectd log driver, specified
3694
+                  Driver-specific options for the selected log driver, specified
3695 3695
                   as key/value pairs.
3696 3696
                 type: "object"
3697 3697
                 additionalProperties:
... ...
@@ -7478,7 +7478,7 @@ paths:
7478 7478
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7479 7479
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7480 7480
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7481
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7481
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7482 7482
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7483 7483
       operationId: "ContainerStats"
7484 7484
       produces: ["application/json"]
... ...
@@ -393,7 +393,7 @@ definitions:
393 393
                Make the mount non-recursively read-only, but still leave the mount recursive
394 394
                (unless NonRecursive is set to `true` in conjunction).
395 395
 
396
-               Addded in v1.44, before that version all read-only mounts were
396
+               Added in v1.44, before that version all read-only mounts were
397 397
                non-recursive by default. To match the previous behaviour this
398 398
                will default to `true` for clients on versions prior to v1.44.
399 399
             type: "boolean"
... ...
@@ -2188,7 +2188,7 @@ definitions:
2188 2188
       Created:
2189 2189
         description: |
2190 2190
           Date and time at which the image was created as a Unix timestamp
2191
-          (number of seconds sinds EPOCH).
2191
+          (number of seconds since EPOCH).
2192 2192
         type: "integer"
2193 2193
         x-nullable: false
2194 2194
         example: "1644009612"
... ...
@@ -2472,7 +2472,7 @@ definitions:
2472 2472
         example: false
2473 2473
       Attachable:
2474 2474
         description: |
2475
-          Wheter a global / swarm scope network is manually attachable by regular
2475
+          Whether a global / swarm scope network is manually attachable by regular
2476 2476
           containers from workers in swarm mode.
2477 2477
         type: "boolean"
2478 2478
         default: false
... ...
@@ -3677,7 +3677,7 @@ definitions:
3677 3677
                 example: "json-file"
3678 3678
               Options:
3679 3679
                 description: |
3680
-                  Driver-specific options for the selectd log driver, specified
3680
+                  Driver-specific options for the selected log driver, specified
3681 3681
                   as key/value pairs.
3682 3682
                 type: "object"
3683 3683
                 additionalProperties:
... ...
@@ -7464,7 +7464,7 @@ paths:
7464 7464
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7465 7465
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7466 7466
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7467
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7467
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7468 7468
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7469 7469
       operationId: "ContainerStats"
7470 7470
       produces: ["application/json"]
... ...
@@ -393,7 +393,7 @@ definitions:
393 393
                Make the mount non-recursively read-only, but still leave the mount recursive
394 394
                (unless NonRecursive is set to `true` in conjunction).
395 395
 
396
-               Addded in v1.44, before that version all read-only mounts were
396
+               Added in v1.44, before that version all read-only mounts were
397 397
                non-recursive by default. To match the previous behaviour this
398 398
                will default to `true` for clients on versions prior to v1.44.
399 399
             type: "boolean"
... ...
@@ -2216,7 +2216,7 @@ definitions:
2216 2216
       Created:
2217 2217
         description: |
2218 2218
           Date and time at which the image was created as a Unix timestamp
2219
-          (number of seconds sinds EPOCH).
2219
+          (number of seconds since EPOCH).
2220 2220
         type: "integer"
2221 2221
         x-nullable: false
2222 2222
         example: "1644009612"
... ...
@@ -2500,7 +2500,7 @@ definitions:
2500 2500
         example: false
2501 2501
       Attachable:
2502 2502
         description: |
2503
-          Wheter a global / swarm scope network is manually attachable by regular
2503
+          Whether a global / swarm scope network is manually attachable by regular
2504 2504
           containers from workers in swarm mode.
2505 2505
         type: "boolean"
2506 2506
         default: false
... ...
@@ -3723,7 +3723,7 @@ definitions:
3723 3723
                 example: "json-file"
3724 3724
               Options:
3725 3725
                 description: |
3726
-                  Driver-specific options for the selectd log driver, specified
3726
+                  Driver-specific options for the selected log driver, specified
3727 3727
                   as key/value pairs.
3728 3728
                 type: "object"
3729 3729
                 additionalProperties:
... ...
@@ -7585,7 +7585,7 @@ paths:
7585 7585
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7586 7586
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7587 7587
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7588
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7588
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7589 7589
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7590 7590
       operationId: "ContainerStats"
7591 7591
       produces: ["application/json"]
... ...
@@ -393,7 +393,7 @@ definitions:
393 393
                Make the mount non-recursively read-only, but still leave the mount recursive
394 394
                (unless NonRecursive is set to `true` in conjunction).
395 395
 
396
-               Addded in v1.44, before that version all read-only mounts were
396
+               Added in v1.44, before that version all read-only mounts were
397 397
                non-recursive by default. To match the previous behaviour this
398 398
                will default to `true` for clients on versions prior to v1.44.
399 399
             type: "boolean"
... ...
@@ -2216,7 +2216,7 @@ definitions:
2216 2216
       Created:
2217 2217
         description: |
2218 2218
           Date and time at which the image was created as a Unix timestamp
2219
-          (number of seconds sinds EPOCH).
2219
+          (number of seconds since EPOCH).
2220 2220
         type: "integer"
2221 2221
         x-nullable: false
2222 2222
         example: "1644009612"
... ...
@@ -2518,7 +2518,7 @@ definitions:
2518 2518
         example: false
2519 2519
       Attachable:
2520 2520
         description: |
2521
-          Wheter a global / swarm scope network is manually attachable by regular
2521
+          Whether a global / swarm scope network is manually attachable by regular
2522 2522
           containers from workers in swarm mode.
2523 2523
         type: "boolean"
2524 2524
         default: false
... ...
@@ -3741,7 +3741,7 @@ definitions:
3741 3741
                 example: "json-file"
3742 3742
               Options:
3743 3743
                 description: |
3744
-                  Driver-specific options for the selectd log driver, specified
3744
+                  Driver-specific options for the selected log driver, specified
3745 3745
                   as key/value pairs.
3746 3746
                 type: "object"
3747 3747
                 additionalProperties:
... ...
@@ -7717,7 +7717,7 @@ paths:
7717 7717
         * Memory usage % = `(used_memory / available_memory) * 100.0`
7718 7718
         * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
7719 7719
         * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
7720
-        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7720
+        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
7721 7721
         * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
7722 7722
       operationId: "ContainerStats"
7723 7723
       produces: ["application/json"]
... ...
@@ -144,7 +144,7 @@ are not part of the underlying image's Config, and deprecated:
144 144
   interval for health checks during the start period.
145 145
 * `GET /info` now includes a `CDISpecDirs` field indicating the configured CDI
146 146
   specifications directories. The use of the applied setting requires the daemon
147
-  to have expermental enabled, and for non-experimental daemons an empty list is
147
+  to have experimental enabled, and for non-experimental daemons an empty list is
148 148
   always returned.
149 149
 * `POST /networks/create` now returns a 400 if the `IPAMConfig` has invalid
150 150
   values. Note that this change is _unversioned_ and applied to all API
... ...
@@ -430,7 +430,7 @@ are not part of the underlying image's Config, and deprecated:
430 430
   to return those without the specified labels.
431 431
 * `POST /containers/create` now accepts a `fluentd-async` option in `HostConfig.LogConfig.Config`
432 432
   when using the Fluentd logging driver. This option deprecates the `fluentd-async-connect`
433
-  option, which remains funtional, but will be removed in a future release. Users
433
+  option, which remains functional, but will be removed in a future release. Users
434 434
   are encouraged to use the `fluentd-async` option going forward. This change is
435 435
   not versioned, and affects all API versions if the daemon has this patch.
436 436
 * `POST /containers/create` now accepts a `fluentd-request-ack` option in
... ...
@@ -224,7 +224,7 @@ func (s *DockerAPISuite) TestPostContainersAttach(c *testing.T) {
224 224
 	assert.Equal(c, outBuf.String(), "hello\nsuccess")
225 225
 }
226 226
 
227
-// requestHijack create a http requst to specified host with `Upgrade` header (with method
227
+// requestHijack create a http request to specified host with `Upgrade` header (with method
228 228
 // , contenttype, …), if receive a successful "101 Switching Protocols" response return
229 229
 // a `io.WriteCloser` and `bufio.Reader`
230 230
 func requestHijack(method, endpoint string, data io.Reader, ct, daemon string, modifiers ...func(*http.Request)) (io.WriteCloser, *bufio.Reader, error) {
... ...
@@ -3521,7 +3521,7 @@ func (s *DockerCLIBuildSuite) TestBuildNotVerboseFailureRemote(c *testing.T) {
3521 3521
 
3522 3522
 	// An error message should contain name server IP and port, like this:
3523 3523
 	//  "dial tcp: lookup something.invalid on 172.29.128.11:53: no such host"
3524
-	// The IP:port need to be removed in order to not trigger a test failur
3524
+	// The IP:port need to be removed in order to not trigger a test failure
3525 3525
 	// when more than one nameserver is configured.
3526 3526
 	// While at it, also strip excessive newlines.
3527 3527
 	normalize := func(msg string) string {
... ...
@@ -468,7 +468,7 @@ func (s *DockerCLIPluginsSuite) TestPluginMetricsCollector(c *testing.T) {
468 468
 	r := cli.Docker(cli.Args("plugin", "install", "--grant-all-permissions", name), cli.Daemon(d))
469 469
 	assert.Assert(c, r.Error == nil, r.Combined())
470 470
 
471
-	// plugin lisens on localhost:19393 and proxies the metrics
471
+	// plugin listens on localhost:19393 and proxies the metrics
472 472
 	resp, err := http.Get("http://localhost:19393/metrics")
473 473
 	assert.NilError(c, err)
474 474
 	defer resp.Body.Close()
... ...
@@ -166,7 +166,7 @@ func (s *DockerCLIPortSuite) TestPortList(c *testing.T) {
166 166
 func assertPortList(c *testing.T, out string, expected []string) {
167 167
 	c.Helper()
168 168
 	lines := strings.Split(strings.Trim(out, "\n "), "\n")
169
-	assert.Assert(c, is.Len(lines, len(expected)), "exepcted: %s", strings.Join(expected, ", "))
169
+	assert.Assert(c, is.Len(lines, len(expected)), "expected: %s", strings.Join(expected, ", "))
170 170
 
171 171
 	sort.Strings(lines)
172 172
 	sort.Strings(expected)
... ...
@@ -1440,7 +1440,7 @@ func (s *DockerCLIRunSuite) TestRunResolvconfUpdate(c *testing.T) {
1440 1440
 	}
1441 1441
 
1442 1442
 	// This test case is meant to test monitoring resolv.conf when it is
1443
-	// a regular file not a bind mounc. So we unmount resolv.conf and replace
1443
+	// a regular file not a bind mount. So we unmount resolv.conf and replace
1444 1444
 	// it with a file containing the original settings.
1445 1445
 	mounted, err := mountinfo.Mounted("/etc/resolv.conf")
1446 1446
 	if err != nil {
... ...
@@ -2089,7 +2089,7 @@ func (s *DockerCLIRunSuite) TestRunMountOrdering(c *testing.T) {
2089 2089
 	}
2090 2090
 	defer os.RemoveAll(tmpDir2)
2091 2091
 
2092
-	// Create a temporary tmpfs mounc.
2092
+	// Create a temporary tmpfs mount.
2093 2093
 	fooDir := filepath.Join(tmpDir, "foo")
2094 2094
 	if err := os.MkdirAll(filepath.Join(tmpDir, "foo"), 0o755); err != nil {
2095 2095
 		c.Fatalf("failed to mkdir at %s - %s", fooDir, err)
... ...
@@ -400,7 +400,7 @@ func checkGoroutineCount(ctx context.Context, apiClient client.APIClient, expect
400 400
 				t.Log("Waiting for goroutines to stabilize")
401 401
 				first = false
402 402
 			}
403
-			return poll.Continue("exepcted %d goroutines, got %d", expected, n)
403
+			return poll.Continue("expected %d goroutines, got %d", expected, n)
404 404
 		}
405 405
 		return poll.Success()
406 406
 	}
... ...
@@ -702,7 +702,7 @@ func TestContainerdContainerImageInfo(t *testing.T) {
702 702
 	if testEnv.UsingSnapshotter() {
703 703
 		assert.Equal(t, ctr.Image, "docker.io/library/busybox:latest")
704 704
 	} else {
705
-		// This field is not set when not using contianerd backed storage.
705
+		// This field is not set when not using containerd backed storage.
706 706
 		assert.Equal(t, ctr.Image, "")
707 707
 	}
708 708
 }
... ...
@@ -181,7 +181,7 @@ func TestDaemonHostGatewayIP(t *testing.T) {
181 181
 // In this test we'll change the container state to "restarting".
182 182
 // This means that the container will not be 'alive' when we attempt to restore in on daemon startup.
183 183
 //
184
-// We could do the same with `docker run -d --resetart=always busybox:latest exit 1`, and then
184
+// We could do the same with `docker run -d --restart=always busybox:latest exit 1`, and then
185 185
 // `kill -9` dockerd while the container is in "restarting" state. This is difficult to reproduce reliably
186 186
 // in an automated test, so we manipulate on disk state instead.
187 187
 func TestRestartDaemonWithRestartingContainer(t *testing.T) {
... ...
@@ -34,7 +34,7 @@ func WithImage(image string) func(*TestContainerConfig) {
34 34
 	}
35 35
 }
36 36
 
37
-// WithCmd sets the comannds of the container
37
+// WithCmd sets the commands of the container
38 38
 func WithCmd(cmds ...string) func(*TestContainerConfig) {
39 39
 	return func(c *TestContainerConfig) {
40 40
 		c.Config.Cmd = strslice.StrSlice(cmds)
... ...
@@ -63,7 +63,7 @@ func CheckGoroutineCount(ctx context.Context, apiClient client.SystemAPIClient,
63 63
 				t.Log("Waiting for goroutines to stabilize")
64 64
 				first = false
65 65
 			}
66
-			return poll.Continue("exepcted %d goroutines, got %d", expected, n)
66
+			return poll.Continue("expected %d goroutines, got %d", expected, n)
67 67
 		}
68 68
 		return poll.Success()
69 69
 	}
... ...
@@ -21,7 +21,7 @@ import (
21 21
 	"gotest.tools/v3/skip"
22 22
 )
23 23
 
24
-func TestDockerNetworkIpvlanPersistance(t *testing.T) {
24
+func TestDockerNetworkIpvlanPersistence(t *testing.T) {
25 25
 	// verify the driver automatically provisions the 802.1q link (di-dummy0.70)
26 26
 	skip.If(t, testEnv.IsRemoteDaemon)
27 27
 	skip.If(t, testEnv.IsRootless, "rootless mode has different view of network")
... ...
@@ -20,7 +20,7 @@ import (
20 20
 	"gotest.tools/v3/skip"
21 21
 )
22 22
 
23
-func TestDockerNetworkMacvlanPersistance(t *testing.T) {
23
+func TestDockerNetworkMacvlanPersistence(t *testing.T) {
24 24
 	// verify the driver automatically provisions the 802.1q link (dm-dummy0.60)
25 25
 	skip.If(t, testEnv.IsRemoteDaemon)
26 26
 	skip.If(t, testEnv.IsRootless, "rootless mode has different view of network")
... ...
@@ -43,7 +43,7 @@ func main() {
43 43
 	server := http.Server{
44 44
 		Addr:              l.Addr().String(),
45 45
 		Handler:           mux,
46
-		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to statisfy gosec (G112: Potential Slowloris Attack)
46
+		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to satisfy gosec (G112: Potential Slowloris Attack)
47 47
 	}
48 48
 
49 49
 	server.Serve(l)
... ...
@@ -18,7 +18,7 @@ func main() {
18 18
 	server := http.Server{
19 19
 		Addr:              l.Addr().String(),
20 20
 		Handler:           mux,
21
-		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to statisfy gosec (G112: Potential Slowloris Attack)
21
+		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to satisfy gosec (G112: Potential Slowloris Attack)
22 22
 	}
23 23
 	server.Serve(l)
24 24
 }
... ...
@@ -15,7 +15,7 @@ func main() {
15 15
 	server := http.Server{
16 16
 		Addr:              l.Addr().String(),
17 17
 		Handler:           http.NewServeMux(),
18
-		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to statisfy gosec (G112: Potential Slowloris Attack)
18
+		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to satisfy gosec (G112: Potential Slowloris Attack)
19 19
 	}
20 20
 	server.Serve(l)
21 21
 }
... ...
@@ -15,7 +15,7 @@ func main() {
15 15
 	server := http.Server{
16 16
 		Addr:              l.Addr().String(),
17 17
 		Handler:           http.NewServeMux(),
18
-		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to statisfy gosec (G112: Potential Slowloris Attack)
18
+		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to satisfy gosec (G112: Potential Slowloris Attack)
19 19
 	}
20 20
 	server.Serve(l)
21 21
 }
... ...
@@ -120,7 +120,7 @@ func TestCreateServiceMultipleTimes(t *testing.T) {
120 120
 	// we can't just wait on no tasks for the service, counter-intuitively.
121 121
 	// Tasks may briefly exist but not show up, if they are in the process
122 122
 	// of being deallocated. To avoid this case, we should retry network remove
123
-	// a few times, to give tasks time to be deallcoated
123
+	// a few times, to give tasks time to be deallocated
124 124
 	poll.WaitOn(t, swarm.NoTasksForService(ctx, client, serviceID2), swarm.ServicePoll)
125 125
 
126 126
 	for retry := 0; retry < 5; retry++ {
... ...
@@ -336,7 +336,7 @@ func TestCreateServiceSysctls(t *testing.T) {
336 336
 	client := d.NewClientT(t)
337 337
 	defer client.Close()
338 338
 
339
-	// run thie block twice, so that no matter what the default value of
339
+	// run this block twice, so that no matter what the default value of
340 340
 	// net.ipv4.ip_nonlocal_bind is, we can verify that setting the sysctl
341 341
 	// options works
342 342
 	for _, expected := range []string{"0", "1"} {
... ...
@@ -16,7 +16,7 @@ import (
16 16
 // ToRootfulInRootless is used for "rootful-in-rootless" dind;
17 17
 // the daemon is running in UserNS but has no access to RootlessKit API socket, host filesystem, etc.
18 18
 //
19
-// This fuction does:
19
+// This function does:
20 20
 // * Fix up OOMScoreAdj (needed since systemd v250: https://github.com/moby/moby/issues/46563)
21 21
 func ToRootfulInRootless(spec *specs.Spec) {
22 22
 	if spec.Process == nil || spec.Process.OOMScoreAdj == nil {
... ...
@@ -112,7 +112,7 @@ func TestJoinWithSymlinkReplace(t *testing.T) {
112 112
 		// On Linux we can delete it just fine.
113 113
 		assert.NilError(t, err, "failed to remove symlink")
114 114
 
115
-		// Replace target with a symlink to /etc/paswd
115
+		// Replace target with a symlink to /etc/passwd
116 116
 		err = os.Symlink("/etc/passwd", target)
117 117
 		assert.NilError(t, err, "failed to create symlink")
118 118
 	}
... ...
@@ -689,7 +689,7 @@ func (ep *Endpoint) deleteServiceInfoFromCluster(sb *Sandbox, fullRemove bool, m
689 689
 	log.G(context.TODO()).Debugf("deleteServiceInfoFromCluster from %s START for %s %s", method, ep.svcName, ep.ID())
690 690
 
691 691
 	// Avoid a race w/ with a container that aborts preemptively.  This would
692
-	// get caught in disableServceInNetworkDB, but we check here to make the
692
+	// get caught in disableServiceInNetworkDB, but we check here to make the
693 693
 	// nature of the condition more clear.
694 694
 	// See comment in addServiceInfoToCluster()
695 695
 	if err := sb.GetEndpoint(ep.ID()); err == nil {
... ...
@@ -779,7 +779,7 @@ func (n *Network) addDriverWatches() {
779 779
 		go c.handleTableEvents(ch, n.handleDriverTableEvent)
780 780
 		d, err := n.driver(false)
781 781
 		if err != nil {
782
-			log.G(context.TODO()).Errorf("Could not resolve driver %s while walking driver tabl: %v", n.networkType, err)
782
+			log.G(context.TODO()).Errorf("Could not resolve driver %s while walking driver table: %v", n.networkType, err)
783 783
 			return
784 784
 		}
785 785
 
... ...
@@ -72,7 +72,7 @@ type EndpointRecord struct {
72 72
 	Aliases []string `protobuf:"bytes,7,rep,name=aliases,proto3" json:"aliases,omitempty"`
73 73
 	// List of aliases task specific aliases
74 74
 	TaskAliases []string `protobuf:"bytes,8,rep,name=task_aliases,json=taskAliases,proto3" json:"task_aliases,omitempty"`
75
-	// Whether this enpoint's service has been disabled
75
+	// Whether this endpoint's service has been disabled
76 76
 	ServiceDisabled bool `protobuf:"varint,9,opt,name=service_disabled,json=serviceDisabled,proto3" json:"service_disabled,omitempty"`
77 77
 }
78 78
 
... ...
@@ -38,7 +38,7 @@ message EndpointRecord {
38 38
 	// List of aliases task specific aliases
39 39
 	repeated string task_aliases = 8;
40 40
 
41
-	// Whether this enpoint's service has been disabled
41
+	// Whether this endpoint's service has been disabled
42 42
 	bool service_disabled = 9;
43 43
 }
44 44
 
... ...
@@ -505,7 +505,7 @@ func pushReservation(bytePos, bitPos uint64, head *sequence, release bool) *sequ
505 505
 		return newHead
506 506
 	}
507 507
 
508
-	// Current sequence inevitably looses one block, upadate count
508
+	// Current sequence inevitably looses one block, update count
509 509
 	current.count--
510 510
 
511 511
 	// Create new sequence
... ...
@@ -1109,7 +1109,7 @@ func testSetRollover(t *testing.T, serial bool) {
1109 1109
 			t.Fatalf("Unexpected failure on allocation %d: %v\nSeed: %d\n%s", i, err, seed, hnd)
1110 1110
 		}
1111 1111
 	}
1112
-	// Now requesting to allocate the unallocated random bits (qurter of the number of bits) should
1112
+	// Now requesting to allocate the unallocated random bits (quarter of the number of bits) should
1113 1113
 	// leave no more bits that can be allocated.
1114 1114
 	if hnd.Unselected() != 0 {
1115 1115
 		t.Fatalf("Unexpected number of unselected bits %d, Expected %d", hnd.Unselected(), 0)
... ...
@@ -759,7 +759,7 @@ func doWriteWaitLeaveJoin(ips []string, args []string) {
759 759
 	fmt.Fprintf(os.Stderr, "doWriteWaitLeaveJoin succeeded in %d msec", opTime)
760 760
 }
761 761
 
762
-var cmdArgChec = map[string]int{
762
+var cmdArgCheck = map[string]int{
763 763
 	"debug":                    0,
764 764
 	"fail":                     0,
765 765
 	"ready":                    2,
... ...
@@ -777,8 +777,8 @@ func Client(args []string) {
777 777
 	log.G(context.TODO()).Infof("[CLIENT] Starting with arguments %v", args)
778 778
 	command := args[0]
779 779
 
780
-	if len(args) < cmdArgChec[command] {
781
-		log.G(context.TODO()).Fatalf("Command %s requires %d arguments, passed %d, aborting...", command, cmdArgChec[command], len(args))
780
+	if len(args) < cmdArgCheck[command] {
781
+		log.G(context.TODO()).Fatalf("Command %s requires %d arguments, passed %d, aborting...", command, cmdArgCheck[command], len(args))
782 782
 	}
783 783
 
784 784
 	switch command {
... ...
@@ -95,7 +95,7 @@ func handleTableEvents(tableName string, ch *events.Channel) {
95 95
 			return
96 96
 
97 97
 		case evt := <-ch.C:
98
-			log.G(context.TODO()).Infof("Recevied new event on:%s", tableName)
98
+			log.G(context.TODO()).Infof("Received new event on:%s", tableName)
99 99
 			switch event := evt.(type) {
100 100
 			case networkdb.CreateEvent:
101 101
 				// nid = event.NetworkID
... ...
@@ -658,7 +658,7 @@ func TestServiceNetworkUpdate(t *testing.T) {
658 658
 	err = na.Allocate(n2)
659 659
 	assert.Check(t, err)
660 660
 
661
-	// Attach a network to a service spec nd allocate a service
661
+	// Attach a network to a service spec and allocate a service
662 662
 	s := &api.Service{
663 663
 		ID: "testID1",
664 664
 		Spec: api.ServiceSpec{
... ...
@@ -101,7 +101,7 @@ func (s *Server) EnableDiagnostic(ip string, port int) {
101 101
 	}(s)
102 102
 }
103 103
 
104
-// DisableDiagnostic stop the dubug and closes the tcp socket
104
+// DisableDiagnostic stop the debug and closes the tcp socket
105 105
 func (s *Server) DisableDiagnostic() {
106 106
 	s.mu.Lock()
107 107
 	defer s.mu.Unlock()
... ...
@@ -115,7 +115,7 @@ This section describes traffic flow of request and reply to/from a service with
115 115
 4. The request arrives at eth0 of container NS with dstIP=10.255.0.5, dstPort=30000, srcIP=10.255.0.x (eth1 IP in ingress_sbox NS), srcPort=EMPHEMERAL_PORT.  Before routing, it?s dstPort is changed to 80 via nat rule in service setup (3), and is allowed to be forwarded to local process by INPUT rule in service setup (2) post routig. The process listening on tcp:80 receives request with dstIP=10.255.0.5,  dstPort=80, srcIP=10.255.0.2, , srcPort=EPHEMERAL_PORT.
116 116
 5. The process replies, The reply has dstIP=10.255.0.2, dstPort=EPHEMERAL_PORT, srcIp=not_known, srcPort=80. It goes through filter rule in OUTPUT chain in service setup(2), which allows it to pass. It goes through routing that determines outbound interface is eth1, and srcIP=10.255.0.5; and  it ?un-dnats? srcPort=80 to 30000 via nat table rule in service setup (3).
117 117
 6. The reply arrives at br0 in ingress NS with dstIP=10.255.0.2, dstPort=EPHEMERAL_PORT, srcIP=10.255.0.5, srcPort=30000, which duly forwarded it to ...
118
-7. The eh0 interface in sb_ingress NS. The reply first go through ipvs LB that ?un-dnats? srcIP from 10.255.0.5 to 172.18.0.2; then ?un-snats? via nat rule in service setup (8) dstIP from 10.255.0.2 to CLIENT_IP, dstPort from EMPHERAL_PORT to CLIENT_PORT.
118
+7. The eh0 interface in sb_ingress NS. The reply first go through ipvs LB that ?un-dnats? srcIP from 10.255.0.5 to 172.18.0.2; then ?un-snats? via nat rule in service setup (8) dstIP from 10.255.0.2 to CLIENT_IP, dstPort from EPHEMERAL_PORT to CLIENT_PORT.
119 119
 8. The reply arrives at docker_gwbridge0 interface of host NS with dstIP=CLIENT_IP, dstPort=CLIENT_PORT, srcIP=172.18.0.2, srcPort=30000. The reply ?un-snats? with nat rule in service setup(6) with srcIP changes to 172.31.2.1. And is then forwarded out of eth0 interface, and complete the traffic flow. From external view,  request enters host with dstIP=172.31.2.1, dstPort=30000, srcIP=CLIENT_IP, srcPort=CLIENT_PORT; and reply exits with  dstIP=CLIENT_IP, dstPort=CLIENT_PORT, srcIP=172.31.2.1, srcPort=30000.
120 120
 
121 121
 
... ...
@@ -964,7 +964,7 @@ func (d *driver) deleteNetwork(nid string) error {
964 964
 	config := n.config
965 965
 	n.Unlock()
966 966
 
967
-	// delele endpoints belong to this network
967
+	// delete endpoints belong to this network
968 968
 	for _, ep := range n.endpoints {
969 969
 		if err := n.releasePorts(ep); err != nil {
970 970
 			log.G(context.TODO()).Warn(err)
... ...
@@ -44,7 +44,7 @@ func setupIPv6BridgeNetFiltering(config *networkConfiguration, _ *bridgeInterfac
44 44
 	return nil
45 45
 }
46 46
 
47
-// Enable bridge net filtering if not already enabled. See github issue #11404
47
+// Enable bridge net filtering if not already enabled. See GitHub issue #11404
48 48
 func enableBridgeNetFiltering(nfParam string) error {
49 49
 	enabled, err := getKernelBoolParam(nfParam)
50 50
 	if err != nil {
... ...
@@ -299,7 +299,7 @@ func (d *driver) peerAddOp(nid, eid string, peerIP net.IP, peerIPMask net.IPMask
299 299
 	sbox := n.sandbox()
300 300
 	if sbox == nil {
301 301
 		// We are hitting this case for all the events that are arriving before that the sandbox
302
-		// is being created. The peer got already added into the database and the sanbox init will
302
+		// is being created. The peer got already added into the database and the sandbox init will
303 303
 		// call the peerDbUpdateSandbox that will configure all these peers from the database
304 304
 		return nil
305 305
 	}
... ...
@@ -448,7 +448,7 @@ func (d *driver) DeleteNetwork(nid string) error {
448 448
 	delete(d.networks, nid)
449 449
 	d.Unlock()
450 450
 
451
-	// delele endpoints belong to this network
451
+	// delete endpoints belong to this network
452 452
 	for _, ep := range n.endpoints {
453 453
 		if err := d.storeDelete(ep); err != nil {
454 454
 			log.G(context.TODO()).Warnf("Failed to remove bridge endpoint %.7s from store: %v", ep.id, err)
... ...
@@ -775,7 +775,7 @@ func (ep *Endpoint) sbLeave(ctx context.Context, sb *Sandbox, force bool) error
775 775
 	}
776 776
 
777 777
 	// Update the store about the sandbox detach only after we
778
-	// have completed sb.clearNetworkresources above to avoid
778
+	// have completed sb.clearNetworkResources above to avoid
779 779
 	// spurious logs when cleaning up the sandbox when the daemon
780 780
 	// ungracefully exits and restarts before completing sandbox
781 781
 	// detach but after store has been updated.
... ...
@@ -14,7 +14,7 @@ import (
14 14
 	bolt "go.etcd.io/bbolt"
15 15
 )
16 16
 
17
-// ErrBoltBucketOptionMissing is thrown when boltBcuket config option is missing
17
+// ErrBoltBucketOptionMissing is thrown when boltBucket config option is missing
18 18
 var ErrBoltBucketOptionMissing = errors.New("boltBucket config option missing")
19 19
 
20 20
 const filePerm = 0o644
... ...
@@ -59,7 +59,7 @@ type Store interface {
59 59
 	Close()
60 60
 }
61 61
 
62
-// KVPair represents {Key, Value, Lastindex} tuple
62
+// KVPair represents {Key, Value, LastIndex} tuple
63 63
 type KVPair struct {
64 64
 	Key       string
65 65
 	Value     []byte
... ...
@@ -44,7 +44,7 @@ func (n NetworkToSplit) Overlaps(p netip.Prefix) bool {
44 44
 	return n.Base.Overlaps(p)
45 45
 }
46 46
 
47
-// GetGlobalScopeDefaultNetworks returns a copy of the global-sopce network list.
47
+// GetGlobalScopeDefaultNetworks returns a copy of the global-scope network list.
48 48
 func GetGlobalScopeDefaultNetworks() []*NetworkToSplit {
49 49
 	return slices.Clone(globalScopeDefaultNetworks)
50 50
 }
... ...
@@ -2050,7 +2050,7 @@ func (n *Network) ResolveIP(_ context.Context, ip string) string {
2050 2050
 	// because of interleave of different events from different sources (local container create vs
2051 2051
 	// network db notifications)
2052 2052
 	// In such cases the resolution will be based on the first element of the set, and can vary
2053
-	// during the system stabilitation
2053
+	// during the system stabilization
2054 2054
 	elem := elemSet[0]
2055 2055
 	if elem.extResolver {
2056 2056
 		return ""
... ...
@@ -294,7 +294,7 @@ func (nDB *NetworkDB) rejoinClusterBootStrap() {
294 294
 	}
295 295
 	bootStrapIPs := make([]string, 0, len(nDB.bootStrapIP))
296 296
 	for _, bootIP := range nDB.bootStrapIP {
297
-		// botostrap IPs are usually IP:port from the Join
297
+		// bootstrap IPs are usually IP:port from the Join
298 298
 		var bootstrapIP net.IP
299 299
 		ipStr, _, err := net.SplitHostPort(bootIP)
300 300
 		if err != nil {
... ...
@@ -213,7 +213,7 @@ func (nDB *NetworkDB) handleTableEvent(tEvent *TableEvent, isBulkSync bool) bool
213 213
 		// 2) the residual reapTime is higher than 1/6 of the total reapTime.
214 214
 		// If the residual reapTime is lower or equal to 1/6 of the total reapTime don't bother broadcasting it around
215 215
 		// most likely the cluster is already aware of it
216
-		// This also reduce the possibility that deletion of entries close to their garbage collection ends up circuling around
216
+		// This also reduce the possibility that deletion of entries close to their garbage collection ends up circling around
217 217
 		// forever
218 218
 		// log.G(ctx).Infof("exiting on delete not knowing the obj with rebroadcast:%t", network.inSync)
219 219
 		return network.inSync && e.reapTime > nDB.config.reapEntryInterval/6
... ...
@@ -189,7 +189,7 @@ type Config struct {
189 189
 	// reapEntryInterval duration of a deleted entry before being garbage collected
190 190
 	reapEntryInterval time.Duration
191 191
 
192
-	// reapNetworkInterval duration of a delted network before being garbage collected
192
+	// reapNetworkInterval duration of a deleted network before being garbage collected
193 193
 	// NOTE this MUST always be higher than reapEntryInterval
194 194
 	reapNetworkInterval time.Duration
195 195
 
... ...
@@ -727,7 +727,7 @@ func (nDB *NetworkDB) deleteNetworkNode(nid string, nodeName string) {
727 727
 	nDB.networkNodes[nid] = newNodes
728 728
 }
729 729
 
730
-// findCommonnetworks find the networks that both this node and the
730
+// findCommonNetworks find the networks that both this node and the
731 731
 // passed node have joined.
732 732
 func (nDB *NetworkDB) findCommonNetworks(nodeName string) []string {
733 733
 	nDB.RLock()
... ...
@@ -879,7 +879,7 @@ func TestNetworkDBIslands(t *testing.T) {
879 879
 
880 880
 	// Give some time to let the system propagate the messages and free up the ports
881 881
 	check := func(t poll.LogT) poll.Result {
882
-		// Verify that the nodes are actually all gone and marked appropiately
882
+		// Verify that the nodes are actually all gone and marked appropriately
883 883
 		for name, db := range checkDBs {
884 884
 			db.RLock()
885 885
 			if (len(db.leftNodes) != 3) || (len(db.failedNodes) != 0) {
... ...
@@ -91,7 +91,7 @@ type Resolver struct {
91 91
 	logger        *log.Entry
92 92
 
93 93
 	fwdSem      *semaphore.Weighted // Limit the number of concurrent external DNS requests in-flight
94
-	logInverval rate.Sometimes      // Rate-limit logging about hitting the fwdSem limit
94
+	logInterval rate.Sometimes      // Rate-limit logging about hitting the fwdSem limit
95 95
 }
96 96
 
97 97
 // NewResolver creates a new instance of the Resolver
... ...
@@ -101,7 +101,7 @@ func NewResolver(address string, proxyDNS bool, backend DNSBackend) *Resolver {
101 101
 		err:         fmt.Errorf("setup not done yet"),
102 102
 		startCh:     make(chan struct{}, 1),
103 103
 		fwdSem:      semaphore.NewWeighted(maxConcurrent),
104
-		logInverval: rate.Sometimes{Interval: logInterval},
104
+		logInterval: rate.Sometimes{Interval: logInterval},
105 105
 	}
106 106
 	r.listenAddress, _ = netip.ParseAddr(address)
107 107
 	r.proxyDNS.Store(proxyDNS)
... ...
@@ -559,7 +559,7 @@ func (r *Resolver) forwardExtDNS(ctx context.Context, proto string, remoteAddr n
559 559
 
560 560
 		if err != nil {
561 561
 			if errors.Is(err, context.DeadlineExceeded) {
562
-				r.logInverval.Do(func() {
562
+				r.logInterval.Do(func() {
563 563
 					r.log(ctx).Errorf("[resolver] more than %v concurrent queries", maxConcurrent)
564 564
 				})
565 565
 			}
... ...
@@ -647,7 +647,7 @@ func (r *Resolver) exchange(ctx context.Context, proto string, extDNS extDNSEntr
647 647
 		// truncating them on our end to forward verbatim to the client.
648 648
 		// Some DNS servers (e.g. Mikrotik RouterOS) don't support
649 649
 		// EDNS(0) and may send replies over UDP longer than 512 bytes
650
-		// regardless of what size limit, if any, was advertized in the
650
+		// regardless of what size limit, if any, was advertised in the
651 651
 		// query message. Note that ExchangeWithConn will override this
652 652
 		// value if it detects an EDNS OPT record in query so only
653 653
 		// oversized replies to non-EDNS queries will benefit.
... ...
@@ -56,11 +56,11 @@ func TestDNSIPQuery(t *testing.T) {
56 56
 		t.Fatal(err)
57 57
 	}
58 58
 
59
-	// add service records which are used to resolve names. These are the real targets for the DNS querries
59
+	// add service records which are used to resolve names. These are the real targets for the DNS queries
60 60
 	n.addSvcRecords("ep1", "name1", "svc1", net.ParseIP("192.168.0.1"), net.IP{}, true, "test")
61 61
 
62 62
 	w := new(tstwriter)
63
-	// the unit tests right now will focus on non-proxyed DNS requests
63
+	// the unit tests right now will focus on non-proxied DNS requests
64 64
 	r := NewResolver(resolverIPSandbox, false, sb)
65 65
 
66 66
 	// test name1's IP is resolved correctly with the default A type query
... ...
@@ -177,7 +177,7 @@ func TestDNSProxyServFail(t *testing.T) {
177 177
 	r.SetExtServers(localDNSEntries)
178 178
 	r.serveDNS(w, q)
179 179
 	if nRequests != 2 {
180
-		t.Fatalf("Expected 2 DNS querries. Found: %d", nRequests)
180
+		t.Fatalf("Expected 2 DNS queries. Found: %d", nRequests)
181 181
 	}
182 182
 	t.Logf("Expected number of DNS requests generated")
183 183
 }
... ...
@@ -161,7 +161,7 @@ func (sb *Sandbox) delete(ctx context.Context, force bool) error {
161 161
 		if ep.endpointInGWNetwork() && !force {
162 162
 			continue
163 163
 		}
164
-		// Retain the sanbdox if we can't obtain the network from store.
164
+		// Retain the sandbox if we can't obtain the network from store.
165 165
 		if _, err := c.getNetworkFromStore(ep.getNetwork().ID()); err != nil {
166 166
 			if !c.isSwarmNode() {
167 167
 				retain = true
... ...
@@ -216,7 +216,7 @@ func (c *Controller) cleanupServiceBindings(cleanupNID string) {
216 216
 func makeServiceCleanupFunc(c *Controller, s *service, nID, eID string, vip net.IP, ip net.IP) func() {
217 217
 	// ContainerName and taskAliases are not available here, this is still fine because the Service discovery
218 218
 	// cleanup already happened before. The only thing that rmServiceBinding is still doing here a part from the Load
219
-	// Balancer bookeeping, is to keep consistent the mapping of endpoint to IP.
219
+	// Balancer bookkeeping, is to keep consistent the mapping of endpoint to IP.
220 220
 	return func() {
221 221
 		if err := c.rmServiceBinding(s.name, s.id, nID, eID, "", vip, s.ingressPorts, s.aliases, []string{}, ip, "cleanupServiceBindings", false, true); err != nil {
222 222
 			log.G(context.TODO()).Errorf("Failed to remove service bindings for service %s network %s endpoint %s while cleanup: %v", s.id, nID, eID, err)
... ...
@@ -77,7 +77,7 @@ func findIfaceDstName(sb *Sandbox, ep *Endpoint) string {
77 77
 	return ""
78 78
 }
79 79
 
80
-// Add loadbalancer backend to the loadbalncer sandbox for the network.
80
+// Add loadbalancer backend to the loadbalancer sandbox for the network.
81 81
 // If needed add the service as well.
82 82
 func (n *Network) addLBBackend(ip net.IP, lb *loadBalancer) {
83 83
 	if len(lb.vip) == 0 {
... ...
@@ -40,7 +40,7 @@ type TransportPort struct {
40 40
 	Port  uint16
41 41
 }
42 42
 
43
-// Equal checks if this instance of Transportport is equal to the passed one
43
+// Equal checks if this instance of TransportPort is equal to the passed one
44 44
 func (t *TransportPort) Equal(o *TransportPort) bool {
45 45
 	if t == o {
46 46
 		return true
... ...
@@ -21,7 +21,7 @@ var (
21 21
 	knownCaps map[string]*struct{}
22 22
 )
23 23
 
24
-// GetAllCapabilities returns all capabilities that are availeble in the current
24
+// GetAllCapabilities returns all capabilities that are available in the current
25 25
 // environment.
26 26
 func GetAllCapabilities() []string {
27 27
 	initCaps()
... ...
@@ -142,7 +142,7 @@ func TestListOptsWithoutValidator(t *testing.T) {
142 142
 }
143 143
 
144 144
 func TestListOptsWithValidator(t *testing.T) {
145
-	// Re-using logOptsvalidator (used by MapOpts)
145
+	// Re-using logOptsValidator (used by MapOpts)
146 146
 	o := NewListOpts(logOptsValidator)
147 147
 	o.Set("foo")
148 148
 	if o.String() != "" {
... ...
@@ -233,7 +233,7 @@ func TestValidateLabel(t *testing.T) {
233 233
 		expectedErr    string
234 234
 	}{
235 235
 		{
236
-			name:        "lable with bad attribute format",
236
+			name:        "label with bad attribute format",
237 237
 			label:       "label",
238 238
 			expectedErr: "bad attribute format: label",
239 239
 		},
... ...
@@ -36,7 +36,7 @@ func Untar(tarArchive io.Reader, dest string, options *archive.TarOptions) error
36 36
 // This should be used to prevent a potential attacker from manipulating `dest`
37 37
 // such that it would provide access to files outside of `dest` through things
38 38
 // like symlinks. Normally `ResolveSymlinksInScope` would handle this, however
39
-// sanitizing symlinks in this manner is inherrently racey:
39
+// sanitizing symlinks in this manner is inherently racey:
40 40
 // ref: CVE-2018-15664
41 41
 func UntarWithRoot(tarArchive io.Reader, dest string, options *archive.TarOptions, root string) error {
42 42
 	return untarHandler(tarArchive, dest, options, true, root)
... ...
@@ -290,7 +290,7 @@ func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr,
290 290
 }
291 291
 
292 292
 // Stream is an io.Writer for output with utilities to get the output's file
293
-// descriptor and to detect wether it's a terminal.
293
+// descriptor and to detect whether it's a terminal.
294 294
 //
295 295
 // it is subset of the streams.Out type in
296 296
 // https://pkg.go.dev/github.com/docker/cli@v20.10.17+incompatible/cli/streams#Out
... ...
@@ -1,4 +1,4 @@
1
-// Package meminfo provides utilites to retrieve memory statistics of
1
+// Package meminfo provides utilities to retrieve memory statistics of
2 2
 // the host system.
3 3
 package meminfo
4 4
 
... ...
@@ -124,7 +124,7 @@ func (bufPool *BufioWriterPool) Put(b *bufio.Writer) {
124 124
 }
125 125
 
126 126
 // NewWriteCloserWrapper returns a wrapper which puts the bufio.Writer back
127
-// into the pool and closes the writer if it's an io.Writecloser.
127
+// into the pool and closes the writer if it's an io.WriteCloser.
128 128
 func (bufPool *BufioWriterPool) NewWriteCloserWrapper(buf *bufio.Writer, w io.Writer) io.WriteCloser {
129 129
 	return ioutils.NewWriteCloserWrapper(w, func() error {
130 130
 		buf.Flush()
... ...
@@ -116,7 +116,7 @@ func TestBufioWriterPoolPutAndGet(t *testing.T) {
116 116
 	// recover it
117 117
 	defer func() {
118 118
 		if r := recover(); r == nil {
119
-			t.Fatal("Trying to flush the writter should have 'paniced', did not.")
119
+			t.Fatal("Trying to flush the writter should have 'panicked', did not.")
120 120
 		}
121 121
 	}()
122 122
 	writer.Flush()
... ...
@@ -6,7 +6,7 @@ import (
6 6
 
7 7
 // Lgetxattr retrieves the value of the extended attribute identified by attr
8 8
 // and associated with the given path in the file system.
9
-// It will returns a nil slice and nil error if the xattr is not set.
9
+// It returns a nil slice and nil error if the xattr is not set.
10 10
 func Lgetxattr(path string, attr string) ([]byte, error) {
11 11
 	sysErr := func(err error) ([]byte, error) {
12 12
 		return nil, &XattrError{Op: "lgetxattr", Attr: attr, Path: path, Err: err}
... ...
@@ -46,7 +46,7 @@ func TestStoreGetPluginNotMatchCapRefs(t *testing.T) {
46 46
 	}
47 47
 
48 48
 	if _, err := s.Get("test", "volumedriver", plugingetter.Acquire); err == nil {
49
-		t.Fatal("exepcted error when getting plugin that doesn't match the passed in capability")
49
+		t.Fatal("expected error when getting plugin that doesn't match the passed in capability")
50 50
 	}
51 51
 
52 52
 	if refs := p.GetRefCount(); refs != 0 {
... ...
@@ -55,7 +55,7 @@ func TestStoreGetPluginNotMatchCapRefs(t *testing.T) {
55 55
 
56 56
 	p.PluginObj.Enabled = true
57 57
 	if _, err := s.Get("test", "volumedriver", plugingetter.Acquire); err == nil {
58
-		t.Fatal("exepcted error when getting plugin that doesn't match the passed in capability")
58
+		t.Fatal("expected error when getting plugin that doesn't match the passed in capability")
59 59
 	}
60 60
 
61 61
 	if refs := p.GetRefCount(); refs != 0 {
... ...
@@ -359,7 +359,7 @@ func hasScheme(reposName string) bool {
359 359
 }
360 360
 
361 361
 func validateHostPort(s string) error {
362
-	// Split host and port, and in case s can not be splitted, assume host only
362
+	// Split host and port, and in case s can not be split, assume host only
363 363
 	host, port, err := net.SplitHostPort(s)
364 364
 	if err != nil {
365 365
 		host = s
... ...
@@ -13,8 +13,8 @@ Man pages, docs and completion scripts will be removed next week thanks to @tibo
13 13
 
14 14
 ### Find a good and non-confusing home for the remaining monolith
15 15
 
16
-Lot's of dicussion happened on the [forums](https://forums.mobyproject.org/t/topic-find-a-good-an-non-confusing-home-for-the-remaining-monolith)
17
-We should expect to do those changes after the moby summit. We contacted github to work with them so we have a smooth move.
16
+Lots of discussion happened on the [forums](https://forums.mobyproject.org/t/topic-find-a-good-an-non-confusing-home-for-the-remaining-monolith)
17
+We should expect to do those changes after the moby summit. We contacted GitHub to work with them so we have a smooth move.
18 18
 
19 19
 ### Moby tool
20 20
 
... ...
@@ -26,7 +26,7 @@ func main() {
26 26
 	server := http.Server{
27 27
 		Addr:              l.Addr().String(),
28 28
 		Handler:           http.NewServeMux(),
29
-		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to statisfy gosec (G112: Potential Slowloris Attack)
29
+		ReadHeaderTimeout: 2 * time.Second, // This server is not for production code; picked an arbitrary timeout to satisfy gosec (G112: Potential Slowloris Attack)
30 30
 	}
31 31
 	mux.HandleFunc("/Plugin.Activate", func(w http.ResponseWriter, r *http.Request) {
32 32
 		w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1.1+json")
... ...
@@ -65,7 +65,7 @@ func testVolWithQuota(t *testing.T, mountPoint, backingFsDev, testDir string) {
65 65
 	assert.NilError(t, os.WriteFile(testfile, make([]byte, quotaSize/2), 0o644))
66 66
 	assert.NilError(t, os.Remove(testfile))
67 67
 
68
-	// test writing fiel larger than quota
68
+	// test writing file larger than quota
69 69
 	err = os.WriteFile(testfile, make([]byte, quotaSize+1), 0o644)
70 70
 	assert.ErrorContains(t, err, "")
71 71
 	if _, err := os.Stat(testfile); err == nil {
... ...
@@ -293,7 +293,7 @@ func TestCreateWithOpts(t *testing.T) {
293 293
 	}
294 294
 }
295 295
 
296
-func TestRelaodNoOpts(t *testing.T) {
296
+func TestReloadNoOpts(t *testing.T) {
297 297
 	rootDir, err := os.MkdirTemp("", "volume-test-reload-no-opts")
298 298
 	if err != nil {
299 299
 		t.Fatal(err)
... ...
@@ -37,7 +37,7 @@ func WithCreateOptions(opts map[string]string) CreateOption {
37 37
 	}
38 38
 }
39 39
 
40
-// WithCreateReference creats a CreateOption which sets a reference to use
40
+// WithCreateReference creates a CreateOption which sets a reference to use
41 41
 // when creating a volume. This ensures that the volume is created with a reference
42 42
 // already attached to it to prevent race conditions with Create and volume cleanup.
43 43
 func WithCreateReference(ref string) CreateOption {
... ...
@@ -68,7 +68,7 @@ const AnonymousLabel = "com.docker.volume.anonymous"
68 68
 // This reference ID will protect this volume from removal.
69 69
 //
70 70
 // A good example for a reference ID is a container's ID.
71
-// When whatever is going to reference this volume is removed the caller should defeference the volume by calling `Release`.
71
+// When whatever is going to reference this volume is removed the caller should dereference the volume by calling `Release`.
72 72
 func (s *VolumesService) Create(ctx context.Context, name, driverName string, options ...opts.CreateOption) (*volumetypes.Volume, error) {
73 73
 	if name == "" {
74 74
 		name = stringid.GenerateRandomID()
... ...
@@ -103,7 +103,7 @@ func (s *VolumesService) Get(ctx context.Context, name string, getOpts ...opts.G
103 103
 }
104 104
 
105 105
 // Mount mounts the volume
106
-// Callers should specify a uniqe reference for each Mount/Unmount pair.
106
+// Callers should specify a unique reference for each Mount/Unmount pair.
107 107
 //
108 108
 // Example:
109 109
 // ```go
... ...
@@ -404,7 +404,7 @@ func TestFilterFunc(t *testing.T) {
404 404
 		{desc: "test nil list", vols: nil, expect: nil, fn: func(volume.Volume) bool { return true }},
405 405
 		{desc: "test empty list", vols: []volume.Volume{}, expect: []volume.Volume{}, fn: func(volume.Volume) bool { return true }},
406 406
 		{desc: "test filter non-empty to empty", vols: []volume.Volume{testVolume}, expect: []volume.Volume{}, fn: func(volume.Volume) bool { return false }},
407
-		{desc: "test nothing to fitler non-empty list", vols: []volume.Volume{testVolume}, expect: []volume.Volume{testVolume}, fn: func(volume.Volume) bool { return true }},
407
+		{desc: "test nothing to filter non-empty list", vols: []volume.Volume{testVolume}, expect: []volume.Volume{testVolume}, fn: func(volume.Volume) bool { return true }},
408 408
 		{desc: "test filter some", vols: []volume.Volume{testVolume, testVolume2}, expect: []volume.Volume{testVolume}, fn: func(v volume.Volume) bool { return v.Name() == testVolume.Name() }},
409 409
 		{desc: "test filter middle", vols: []volume.Volume{testVolume, testVolume2, testVolume3}, expect: []volume.Volume{testVolume, testVolume3}, fn: func(v volume.Volume) bool { return v.Name() != testVolume2.Name() }},
410 410
 		{desc: "test filter middle and last", vols: []volume.Volume{testVolume, testVolume2, testVolume3}, expect: []volume.Volume{testVolume}, fn: func(v volume.Volume) bool { return v.Name() != testVolume2.Name() && v.Name() != testVolume3.Name() }},