Skip to content

[Important] can not update service publish port(host mode) in docker 1.13.0-rc5 #30199

@yank1

Description

@yank1

Description

Steps to reproduce the issue:

  1. docker service create --publish target=80,published=12348,protocol=tcp,mode=host nginx test
  2. docker service update --publish-rm target=80,published=12348,protocol=tcp,mode=host --publish-add target=80,published=12349,protocol=tcp,mode=host test
  3. docker service inspect test

Describe the results you received:

[
    {
        "ID": "r8z1z994uqtnrkl0x1rsdstaz",
        "Version": {
            "Index": 8456
        },
        "CreatedAt": "2017-01-17T07:53:04.185574076Z",
        "UpdatedAt": "2017-01-17T07:54:41.310011671Z",
        "Spec": {
            "Name": "thirsty_bell",
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "daocloud.io/nginx:latest@sha256:b79693b5fdce190faec138b8a1f7053286aaab0d6f521ffa5dca4764c32c596b",
                    "DNSConfig": {}
                },
                "Resources": {
                    "Limits": {},
                    "Reservations": {}
                },
                "RestartPolicy": {
                    "Condition": "any",
                    "MaxAttempts": 0
                },
                "Placement": {},
                "ForceUpdate": 0
            },
            "Mode": {
                "Replicated": {
                    "Replicas": 1
                }
            },
            "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause",
                "MaxFailureRatio": 0
            },
            "EndpointSpec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 12349,
                        "PublishMode": "host"
                    }
                ]
            }
        },
        "PreviousSpec": {
            "Name": "thirsty_bell",
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "daocloud.io/nginx:latest@sha256:b79693b5fdce190faec138b8a1f7053286aaab0d6f521ffa5dca4764c32c596b",
                    "DNSConfig": {}
                },
                "Resources": {
                    "Limits": {},
                    "Reservations": {}
                },
                "RestartPolicy": {
                    "Condition": "any",
                    "MaxAttempts": 0
                },
                "Placement": {},
                "ForceUpdate": 0
            },
            "Mode": {
                "Replicated": {
                    "Replicas": 1
                }
            },
            "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause",
                "MaxFailureRatio": 0
            },
            "EndpointSpec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 12348,
                        "PublishMode": "host"
                    }
                ]
            }
        },
        "Endpoint": {
            "Spec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 12348,
                        "PublishMode": "host"
                    }
                ]
            },
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 80,
                    "PublishedPort": 12348,
                    "PublishMode": "host"
                }
            ]
        },
        "UpdateStatus": {
            "State": "updating",
            "StartedAt": "2017-01-17T07:54:41.309996141Z",
            "CompletedAt": "1970-01-01T00:00:00Z",
            "Message": "update in progress"
        }
    }
]

Describe the results you expected:

"Endpoint": {
            "Spec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 12349,
                        "PublishMode": "host"
                    }
                ]
            },
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 80,
                    "PublishedPort": 12349,
                    "PublishMode": "host"
                }
            ]
        },

Additional information you deem important (e.g. issue happens only occasionally):

Can not change publish port in 1.13.0-rc5.
The --publish-rm and --publish-add is not honest.

Output of docker version:

Client:
 Version:      1.13.0-rc5
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   43cc971
 Built:        Thu Jan  5 00:43:46 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.0-rc5
 API version:  1.25 (minimum version 1.12)
 Go version:   go1.7.3
 Git commit:   43cc971
 Built:        Thu Jan  5 00:43:46 2017
 OS/Arch:      linux/amd64
 Experimental: false

Output of docker info:

Containers: 35
 Running: 12
 Paused: 0
 Stopped: 23
Images: 19
Server Version: 1.13.0-rc5
Storage Driver: overlay
 Backing Filesystem: xfs
 Supports d_type: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local rexray
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: i99dhbz7k0f6nmfppjs3sdd0w
 Is Manager: true
 ClusterID: xe3bdcd8ncxz2yt2871yf8n09
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: 192.168.100.201
 Manager Addresses:
  192.168.100.201:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 51371867a01c467f08af739783b8beafc154c4d7
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.703 GiB
Name: yk-centos72-1
ID: U7W3:WJPT:KDOH:J3CY:5NSF:UNEC:MOL7:OTR3:EM3V:UEN5:OAVR:QO4R
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
 0.0.0.0/0
 127.0.0.0/8
Registry Mirrors:
 http://dce.m.daocloud.io
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/swarmkind/bugBugs are bugs. The cause may or may not be known at triage time so debugging may be needed.priority/P1Important: P1 issues are a top priority and a must-have for the next release.version/1.13

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions