|
@@ -7,7 +7,6 @@ import (
|
|
"io"
|
|
"io"
|
|
"os"
|
|
"os"
|
|
"path/filepath"
|
|
"path/filepath"
|
|
- "strings"
|
|
|
|
"sync"
|
|
"sync"
|
|
"syscall"
|
|
"syscall"
|
|
"time"
|
|
"time"
|
|
@@ -31,7 +30,6 @@ import (
|
|
"github.com/docker/docker/pkg/system"
|
|
"github.com/docker/docker/pkg/system"
|
|
"github.com/docker/docker/runconfig"
|
|
"github.com/docker/docker/runconfig"
|
|
"github.com/docker/docker/volume"
|
|
"github.com/docker/docker/volume"
|
|
- "github.com/docker/docker/volume/store"
|
|
|
|
)
|
|
)
|
|
|
|
|
|
var (
|
|
var (
|
|
@@ -667,44 +665,6 @@ func (container *Container) mountVolumes() error {
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
-func (container *Container) prepareMountPoints() error {
|
|
|
|
- for _, config := range container.MountPoints {
|
|
|
|
- if len(config.Driver) > 0 {
|
|
|
|
- v, err := container.daemon.createVolume(config.Name, config.Driver, nil)
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- config.Volume = v
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func (container *Container) removeMountPoints(rm bool) error {
|
|
|
|
- var rmErrors []string
|
|
|
|
- for _, m := range container.MountPoints {
|
|
|
|
- if m.Volume == nil {
|
|
|
|
- continue
|
|
|
|
- }
|
|
|
|
- container.daemon.volumes.Decrement(m.Volume)
|
|
|
|
- if rm {
|
|
|
|
- err := container.daemon.volumes.Remove(m.Volume)
|
|
|
|
- // ErrVolumeInUse is ignored because having this
|
|
|
|
- // volume being referenced by other container is
|
|
|
|
- // not an error, but an implementation detail.
|
|
|
|
- // This prevents docker from logging "ERROR: Volume in use"
|
|
|
|
- // where there is another container using the volume.
|
|
|
|
- if err != nil && err != store.ErrVolumeInUse {
|
|
|
|
- rmErrors = append(rmErrors, err.Error())
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if len(rmErrors) > 0 {
|
|
|
|
- return derr.ErrorCodeRemovingVolume.WithArgs(strings.Join(rmErrors, "\n"))
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
func (container *Container) unmountVolumes(forceSyscall bool) error {
|
|
func (container *Container) unmountVolumes(forceSyscall bool) error {
|
|
var (
|
|
var (
|
|
volumeMounts []volume.MountPoint
|
|
volumeMounts []volume.MountPoint
|