commit
5ca6d3bafd
26 changed files with 32 additions and 32 deletions
|
@ -79,7 +79,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
|
|||
if c.Config.Tty && cli.isTerminalOut {
|
||||
height, width := cli.getTtySize()
|
||||
// To handle the case where a user repeatedly attaches/detaches without resizing their
|
||||
// terminal, the only way to get the shell prompt to display for attaches 2+ is to artifically
|
||||
// terminal, the only way to get the shell prompt to display for attaches 2+ is to artificially
|
||||
// resize it, then go back to normal. Without this, every attach after the first will
|
||||
// require the user to manually resize or hit enter.
|
||||
cli.resizeTtyTo(cmd.Arg(0), height+1, width+1, false)
|
||||
|
|
|
@ -49,7 +49,7 @@ type Command struct {
|
|||
|
||||
// Fields below here are platform specific
|
||||
|
||||
FirstStart bool `json:"first_start"` // Optimisation for first boot of Windows
|
||||
FirstStart bool `json:"first_start"` // Optimization for first boot of Windows
|
||||
Hostname string `json:"hostname"` // Windows sets the hostname in the execdriver
|
||||
LayerFolder string `json:"layer_folder"` // Layer folder for a command
|
||||
LayerPaths []string `json:"layer_paths"` // Layer paths for a command
|
||||
|
|
|
@ -81,10 +81,10 @@ type containerInit struct {
|
|||
IsDummy bool // Used for development purposes.
|
||||
VolumePath string // Windows volume path for scratch space
|
||||
Devices []device // Devices used by the container
|
||||
IgnoreFlushesDuringBoot bool // Optimisation hint for container startup in Windows
|
||||
IgnoreFlushesDuringBoot bool // Optimization hint for container startup in Windows
|
||||
LayerFolderPath string // Where the layer folders are located
|
||||
Layers []layer // List of storage layers
|
||||
ProcessorWeight int64 `json:",omitempty"` // CPU Shares 0..10000 on Windows; where 0 will be ommited and HCS will default.
|
||||
ProcessorWeight int64 `json:",omitempty"` // CPU Shares 0..10000 on Windows; where 0 will be omitted and HCS will default.
|
||||
HostName string // Hostname
|
||||
MappedDirectories []mappedDir // List of mapped directories (volumes/mounts)
|
||||
SandboxPath string // Location of unmounted sandbox (used for Hyper-V containers, not Windows Server containers)
|
||||
|
|
|
@ -43,7 +43,7 @@ const (
|
|||
//
|
||||
// Hard Conflict:
|
||||
// - a pull or build using the image.
|
||||
// - any descendent image.
|
||||
// - any descendant image.
|
||||
// - any running container using the image.
|
||||
//
|
||||
// Soft Conflict:
|
||||
|
@ -313,7 +313,7 @@ func (daemon *Daemon) imageDeleteHelper(imgID image.ID, records *[]types.ImageDe
|
|||
// image or any stopped container using the image. If ignoreSoftConflicts is
|
||||
// true, this function will not check for soft conflict conditions.
|
||||
func (daemon *Daemon) checkImageDeleteConflict(imgID image.ID, mask conflictType) *imageDeleteConflict {
|
||||
// Check if the image has any descendent images.
|
||||
// Check if the image has any descendant images.
|
||||
if mask&conflictDependentChild != 0 && len(daemon.imageStore.Children(imgID)) > 0 {
|
||||
return &imageDeleteConflict{
|
||||
hard: true,
|
||||
|
|
|
@ -379,7 +379,7 @@ func (pd *v2PushDescriptor) Upload(ctx context.Context, progressOutput progress.
|
|||
|
||||
pd.pushState.Lock()
|
||||
|
||||
// If Commit succeded, that's an indication that the remote registry
|
||||
// If Commit succeeded, that's an indication that the remote registry
|
||||
// speaks the v2 protocol.
|
||||
pd.pushState.confirmedV2 = true
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ Some container-related events are not affected by container state, so they are n
|
|||
|
||||
Running `docker rmi` emits an **untag** event when removing an image name. The `rmi` command may also emit **delete** events when images are deleted by ID directly or by deleting the last tag referring to the image.
|
||||
|
||||
> **Acknowledgement**: This diagram and the accompanying text were used with the permission of Matt Good and Gilder Labs. See Matt's original blog post [Docker Events Explained](https://gliderlabs.com/blog/2015/04/14/docker-events-explained/).
|
||||
> **Acknowledgment**: This diagram and the accompanying text were used with the permission of Matt Good and Gilder Labs. See Matt's original blog post [Docker Events Explained](https://gliderlabs.com/blog/2015/04/14/docker-events-explained/).
|
||||
|
||||
## Version history
|
||||
|
||||
|
|
|
@ -516,7 +516,7 @@ feature](../userguide/networking/index.md)).
|
|||
ENV <key>=<value> ...
|
||||
|
||||
The `ENV` instruction sets the environment variable `<key>` to the value
|
||||
`<value>`. This value will be in the environment of all "descendent"
|
||||
`<value>`. This value will be in the environment of all "descendant"
|
||||
`Dockerfile` commands and can be [replaced inline](#environment-replacement) in
|
||||
many as well.
|
||||
|
||||
|
@ -646,7 +646,7 @@ guide](../userguide/eng-image/dockerfile_best-practices.md#build-cache) for more
|
|||
|
||||
> **Note**:
|
||||
> Whether a file is identified as a recognized compression format or not
|
||||
> is done soley based on the contents of the file, not the name of the file.
|
||||
> is done solely based on the contents of the file, not the name of the file.
|
||||
> For example, if an empty file happens to end with `.tar.gz` this will not
|
||||
> be recognized as a compressed file and **will not** generate any kind of
|
||||
> decompression error message, rather the file will simply be copied to the
|
||||
|
|
|
@ -802,7 +802,7 @@ cgroup.
|
|||
|
||||
Assuming the daemon is running in cgroup `daemoncgroup`,
|
||||
`--cgroup-parent=/foobar` creates a cgroup in
|
||||
`/sys/fs/cgroup/memory/foobar`, wheras using `--cgroup-parent=foobar`
|
||||
`/sys/fs/cgroup/memory/foobar`, whereas using `--cgroup-parent=foobar`
|
||||
creates the cgroup in `/sys/fs/cgroup/memory/daemoncgroup/foobar`
|
||||
|
||||
This setting can also be set per container, using the `--cgroup-parent`
|
||||
|
|
|
@ -40,7 +40,7 @@ You can specify the IP address you want to be assigned to the container's interf
|
|||
$ docker network connect --ip 10.10.36.122 multi-host-network container2
|
||||
```
|
||||
|
||||
You can use `--link` option to link another container with a prefered alias
|
||||
You can use `--link` option to link another container with a preferred alias
|
||||
|
||||
```bash
|
||||
$ docker network connect --link container1:c1 multi-host-network container2
|
||||
|
|
|
@ -110,7 +110,7 @@ For information on connecting a container to a network, see the ["*Docker networ
|
|||
|
||||
## Examples
|
||||
|
||||
### Assign name and allocate psuedo-TTY (--name, -it)
|
||||
### Assign name and allocate pseudo-TTY (--name, -it)
|
||||
|
||||
$ docker run --name test -it debian
|
||||
root@d6c0fe130dba:/# exit 13
|
||||
|
|
|
@ -455,7 +455,7 @@ step-by-step. You can see that each step creates a new container, runs
|
|||
the instruction inside that container and then commits that change -
|
||||
just like the `docker commit` work flow you saw earlier. When all the
|
||||
instructions have executed you're left with the `97feabe5d2ed` image
|
||||
(also helpfully tagged as `ouruser/sinatra:v2`) and all intermediate
|
||||
(also helpfuly tagged as `ouruser/sinatra:v2`) and all intermediate
|
||||
containers will get removed to clean things up.
|
||||
|
||||
> **Note:**
|
||||
|
|
|
@ -412,7 +412,7 @@ Please note that while creating container4, we linked to a container named `cont
|
|||
which is not created yet. That is one of the differences in behavior between the
|
||||
`legacy link` in default `bridge` network and the new `link` functionality in user defined
|
||||
networks. The `legacy link` is static in nature and it hard-binds the container with the
|
||||
alias and it doesnt tolerate linked container restarts. While the new `link` functionality
|
||||
alias and it doesn't tolerate linked container restarts. While the new `link` functionality
|
||||
in user defined networks are dynamic in nature and supports linked container restarts
|
||||
including tolerating ip-address changes on the linked container.
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ Docker relies on driver technology to manage the storage and interactions associ
|
|||
|
||||
If you are new to Docker containers make sure you read ["Understand images, containers, and storage drivers"](imagesandcontainers.md) first. It explains key concepts and technologies that can help you when working with storage drivers.
|
||||
|
||||
### Acknowledgement
|
||||
### Acknowledgment
|
||||
|
||||
The Docker storage driver material was created in large part by our guest author
|
||||
Nigel Poulton with a bit of help from Docker's own Jérôme Petazzoni. In his
|
||||
|
|
|
@ -111,7 +111,7 @@ directories.
|
|||
drwxr-xr-x 4 root root 4096 Oct 28 11:06 upper
|
||||
drwx------ 3 root root 4096 Oct 28 11:06 work
|
||||
|
||||
These four filesystem objects are all artefacts of OverlayFS. The "lower-id"
|
||||
These four filesystem objects are all artifacts of OverlayFS. The "lower-id"
|
||||
file contains the ID of the top layer of the image the container is based on.
|
||||
This is used by OverlayFS as the "lowerdir".
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
set -e
|
||||
|
||||
# This script updates the apt repo in $DOCKER_RELEASE_DIR/apt/repo.
|
||||
# This script is a "fix all" for any sort of problems that might have occured with
|
||||
# This script is a "fix all" for any sort of problems that might have occurred with
|
||||
# the Release or Package files in the repo.
|
||||
# It should only be used in the rare case of extreme emergencies to regenerate
|
||||
# Release and Package files for the apt repo.
|
||||
|
|
|
@ -176,7 +176,7 @@ Here is an example image JSON file:
|
|||
should be omitted. A collection of images may share many of the same
|
||||
ancestor layers. This organizational structure is strictly a tree with
|
||||
any one layer having either no parent or a single parent and zero or
|
||||
more descendent layers. Cycles are not allowed and implementations
|
||||
more descendant layers. Cycles are not allowed and implementations
|
||||
should be careful to avoid creating them or iterating through a cycle
|
||||
indefinitely.
|
||||
</dd>
|
||||
|
|
|
@ -227,7 +227,7 @@ func (s *DockerAuthzSuite) TestAuthZPluginDenyResponse(c *check.C) {
|
|||
c.Assert(res, check.Equals, fmt.Sprintf("Error response from daemon: authorization denied by plugin %s: %s\n", testAuthZPlugin, unauthorizedMessage))
|
||||
}
|
||||
|
||||
// TestAuthZPluginAllowEventStream verifies event stream propogates correctly after request pass through by the authorization plugin
|
||||
// TestAuthZPluginAllowEventStream verifies event stream propagates correctly after request pass through by the authorization plugin
|
||||
func (s *DockerAuthzSuite) TestAuthZPluginAllowEventStream(c *check.C) {
|
||||
testRequires(c, DaemonIsLinux)
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ func (s *DockerSuite) TestEventsTimestampFormats(c *check.C) {
|
|||
image := "busybox"
|
||||
|
||||
// Start stopwatch, generate an event
|
||||
time.Sleep(1 * time.Second) // so that we don't grab events from previous test occured in the same second
|
||||
time.Sleep(1 * time.Second) // so that we don't grab events from previous test occurred in the same second
|
||||
start := daemonTime(c)
|
||||
dockerCmd(c, "tag", image, "timestamptest:1")
|
||||
dockerCmd(c, "rmi", "timestamptest:1")
|
||||
|
|
|
@ -248,7 +248,7 @@ func isNwPresent(c *check.C, name string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// assertNwList checks network list retrived with ls command
|
||||
// assertNwList checks network list retrieved with ls command
|
||||
// equals to expected network list
|
||||
// note: out should be `network ls [option]` result
|
||||
func assertNwList(c *check.C, out string, expectNws []string) {
|
||||
|
@ -1236,7 +1236,7 @@ func (s *DockerSuite) TestUserDefinedNetworkConnectDisconnectLink(c *check.C) {
|
|||
c.Assert(waitRun("first"), check.IsNil)
|
||||
|
||||
// run a container in a user-defined network with a link for an existing container
|
||||
// and a link for a container that doesnt exist
|
||||
// and a link for a container that doesn't exist
|
||||
dockerCmd(c, "run", "-d", "--net=foo1", "--name=second", "--link=first:FirstInFoo1",
|
||||
"--link=third:bar", "busybox", "top")
|
||||
c.Assert(waitRun("second"), check.IsNil)
|
||||
|
|
|
@ -206,7 +206,7 @@ func (s *DockerSuite) TestUserDefinedNetworkLinks(c *check.C) {
|
|||
c.Assert(waitRun("first"), check.IsNil)
|
||||
|
||||
// run a container in user-defined network udlinkNet with a link for an existing container
|
||||
// and a link for a container that doesnt exist
|
||||
// and a link for a container that doesn't exist
|
||||
dockerCmd(c, "run", "-d", "--net=udlinkNet", "--name=second", "--link=first:foo",
|
||||
"--link=third:bar", "busybox", "top")
|
||||
c.Assert(waitRun("second"), check.IsNil)
|
||||
|
|
|
@ -32,7 +32,7 @@ func TestFileSpecPlugin(t *testing.T) {
|
|||
addr string
|
||||
fail bool
|
||||
}{
|
||||
// TODO Windows: Factor out the unix:// varients.
|
||||
// TODO Windows: Factor out the unix:// variants.
|
||||
{filepath.Join(tmpdir, "echo.spec"), "echo", "unix://var/lib/docker/plugins/echo.sock", false},
|
||||
{filepath.Join(tmpdir, "echo", "echo.spec"), "echo", "unix://var/lib/docker/plugins/echo.sock", false},
|
||||
{filepath.Join(tmpdir, "foo.spec"), "foo", "tcp://localhost:8080", false},
|
||||
|
|
|
@ -223,7 +223,7 @@ with matching paths, and orders the list of file sums accordingly [3].
|
|||
* [2] Tar http://en.wikipedia.org/wiki/Tar_%28computing%29
|
||||
* [3] Name collision https://github.com/docker/docker/commit/c5e6362c53cbbc09ddbabd5a7323e04438b57d31
|
||||
|
||||
## Acknowledgements
|
||||
## Acknowledgments
|
||||
|
||||
Joffrey F (shin-) and Guillaume J. Charmes (creack) on the initial work of the
|
||||
TarSum calculation.
|
||||
|
|
|
@ -42,7 +42,7 @@ The gordon-bot repository is maintained at
|
|||
### NSQ
|
||||
|
||||
We use [NSQ](https://github.com/bitly/nsq) for various aspects of the project
|
||||
infrastucture.
|
||||
infrastructure.
|
||||
|
||||
#### Hooks
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ type volumeDriver interface {
|
|||
Unmount(name string) (err error)
|
||||
// List lists all the volumes known to the driver
|
||||
List() (volumes list, err error)
|
||||
// Get retreives the volume with the requested name
|
||||
// Get retrieves the volume with the requested name
|
||||
Get(name string) (volume *proxyVolume, err error)
|
||||
}
|
||||
|
||||
|
|
|
@ -168,7 +168,7 @@ func (s *VolumeStore) Create(name, driverName string, opts map[string]string) (v
|
|||
// create asks the given driver to create a volume with the name/opts.
|
||||
// If a volume with the name is already known, it will ask the stored driver for the volume.
|
||||
// If the passed in driver name does not match the driver name which is stored for the given volume name, an error is returned.
|
||||
// It is expected that callers of this function hold any neccessary locks.
|
||||
// It is expected that callers of this function hold any necessary locks.
|
||||
func (s *VolumeStore) create(name, driverName string, opts map[string]string) (volume.Volume, error) {
|
||||
// Validate the name in a platform-specific manner
|
||||
valid, err := volume.IsVolumeNameValid(name)
|
||||
|
@ -197,7 +197,7 @@ func (s *VolumeStore) create(name, driverName string, opts map[string]string) (v
|
|||
|
||||
// GetWithRef gets a volume with the given name from the passed in driver and stores the ref
|
||||
// This is just like Get(), but we store the reference while holding the lock.
|
||||
// This makes sure there are no races between checking for the existance of a volume and adding a reference for it
|
||||
// This makes sure there are no races between checking for the existence of a volume and adding a reference for it
|
||||
func (s *VolumeStore) GetWithRef(name, driverName, ref string) (volume.Volume, error) {
|
||||
name = normaliseVolumeName(name)
|
||||
s.locks.Lock(name)
|
||||
|
@ -233,7 +233,7 @@ func (s *VolumeStore) Get(name string) (volume.Volume, error) {
|
|||
|
||||
// get requests the volume, if the driver info is stored it just access that driver,
|
||||
// if the driver is unknown it probes all drivers until it finds the first volume with that name.
|
||||
// it is expected that callers of this function hold any neccessary locks
|
||||
// it is expected that callers of this function hold any necessary locks
|
||||
func (s *VolumeStore) getVolume(name string) (volume.Volume, error) {
|
||||
logrus.Debugf("Getting volume reference for name: %s", name)
|
||||
if v, exists := s.names[name]; exists {
|
||||
|
|
|
@ -24,7 +24,7 @@ type Driver interface {
|
|||
Remove(vol Volume) (err error)
|
||||
// List lists all the volumes the driver has
|
||||
List() ([]Volume, error)
|
||||
// Get retreives the volume with the requested name
|
||||
// Get retrieves the volume with the requested name
|
||||
Get(name string) (Volume, error)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue