Skip to content
This repository has been archived by the owner on Nov 9, 2020. It is now read-only.

Docker 1.13 support/interop #882

Closed
3 of 4 tasks
pdhamdhere opened this issue Feb 1, 2017 · 3 comments
Closed
3 of 4 tasks

Docker 1.13 support/interop #882

pdhamdhere opened this issue Feb 1, 2017 · 3 comments

Comments

@pdhamdhere
Copy link
Contributor

pdhamdhere commented Feb 1, 2017

  • Plugin support (Ship guest docker volume plugin as managed plugin #886)

  • docker new commands

  • docker introduce "docker stack deploy" from a compose file, need to test this new command with docker-volume-vsphere plugin (PR27998)

  • docker changes to existing commands

  • Remove --name from docker volume create (PR23830), need test to verify plugin works for both old and new format

  • Add support for filtering volumes by label (PR25628), docker-volume-vsphere plugin need to support "docker volume ls --filter label".

  • Add a --force flag in docker volume rm to forcefully purge the data
    of the volume that has already been deleted (PR23436). With suppport multiple-ESX host which shared same storage, we may see similar issue as flocker, need to verify "volume rm -f" can solve this issue

@pdhamdhere pdhamdhere added this to the 0.12 milestone Feb 1, 2017
@govint
Copy link
Contributor

govint commented Feb 20, 2017

Can the volume can be re-formatted to destroy the data in the volume.

@pdhamdhere
Copy link
Contributor Author

pdhamdhere commented Feb 24, 2017

  • docker introduce "docker stack deploy" from a compose file, need to test this new command with docker-volume-vsphere plugin (PR27998)
cat nginx-stack-vmdk.yaml 
version: "3"

services:

  nginx:
    image: nginx
    ports:
      - "5000:80"
    volumes:
      - log:/var/log/nginx

    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

volumes:
   log:
      driver: vmdk

root@master:~# docker stack deploy -c nginx-stack-vmdk.yaml ng
Creating network ng_default
Creating service ng_nginx

root@master:~# docker stack ps ng
ID            NAME        IMAGE         NODE    DESIRED STATE  CURRENT STATE          ERROR  PORTS
jsp8zcxa2e9g  ng_nginx.1  nginx:latest  master  Running        Running 3 seconds ago         

root@master:~# docker volume ls
DRIVER              VOLUME NAME
vmdk                ng_log@vsanDatastore

root@master:~# curl 10.162.7.145:5000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

Summary: Single replica works fine. Since VMDK volume can only be used by one docker host at any time, replicas > 1 will fail to start.

  • Remove --name from docker volume create (PR23830), need test to verify plugin works for both old and new format

CLI is backward compatible and no additional work required.

root@master:~# docker volume create -d vmdk --name v1
v1
root@master:~# docker volume create -d vmdk v2
docker volv2
root@master:~# docker volume ls
DRIVER              VOLUME NAME
vmdk                v1@vsanDatastore
vmdk                v2@vsanDatastore
  • Add support for filtering volumes by label (PR25628), docker-volume-vsphere plugin need to support "docker volume ls --filter label".

VMDK volume with labels do not shown up in list though inspect shows label

root@master:~# docker volume create localv --label foo=bar
localv

root@master:~# docker volume create -d vmdk vsphere --label foo=bar
vsphere

root@master:~# docker volume ls -f label=foo=bar
DRIVER              VOLUME NAME
local               localv

root@master:~# docker volume inspect vsphere
[
    {
        "Driver": "vmdk",
        "Labels": {
            "foo": "bar"  <<<<<<<<=======Label does exist
        },

Labels are stored in local metadata.db and are not available on another host. Docker doesn't correctly handle labels for shared volumes. So, we can safely ignore this for now.

[x] Add a --force flag in docker volume rm to forcefully purge the data
of the volume that has already been deleted (PR23436). With suppport multiple-ESX host which shared same storage, we may see similar issue as flocker, need to verify "volume rm -f" can solve this issue

Flocker bug couldn't be reproduced with VMDK driver. We are good. There is a weird docker behavior though. If volume is in use by another VM, we correctly fail the request but docker volume rm -f test doesn't report any error.

root@master:~# docker volume ls
DRIVER              VOLUME NAME
vmdk                test@vsanDatastore
vmdk                vsphere@vsanDatastore
root@master:~# docker volume rm -f test
test    <<<<<<<<<< No error reported
root@master:~# docker volume ls
DRIVER              VOLUME NAME
vmdk                test@vsanDatastore  <<<<<<<volume correctly shows up in ls.
vmdk                vsphere@vsanDatastore

@pdhamdhere pdhamdhere modified the milestones: 0.13, 0.12 Feb 28, 2017
@pdhamdhere
Copy link
Contributor Author

Follow-up actions:

  • Add test for "docker stack deploy" from a compose file

# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

No branches or pull requests

3 participants