##### SUMMARY
Various options which reflect container properties have default values. In particular, these are `auto_remove`, `detach`, `init`, `interactive`, `memory`, `paused`, `privileged`, `read_only`, `tty`. While the defaults usually make sense (and coincide with the defaults used by docker), these are highly problematic in situations where not all options affected by a container are specified in `docker_container` usages.

For example, when `docker_container` is used with `restart: yes`, and no other options are specified, the container is restarted, **except** if the container uses a non-default value for one of these properties. In that case, the module will recreate the container with no options (except the implicit defaults), which is usually **not** what the user wants.

Unfortunately,  removing the defaults breaks backwards compatibility. The obvious solution to this, i.e. deprecating the default values (and remove them in four versions, i.e. 2.14) is also not very good, since it will create a *lot* of noise, since in most tasks and playbooks, these options are not specified (and thus the deprecation warning for each of them should be shown). Telling users to disabling warnings for `docker_container` tasks is not a good idea either, especially since in some cases, warnings from docker daemon are passed on.

This issue is about discussing this problem and collecting ideas on how this issue can be resolved eventually. Feel free to add any ideas or comments you have!

##### ISSUE TYPE
- Feature Idea
- Bug Report

##### COMPONENT NAME
docker_container

##### ANSIBLE VERSION
```
all
```
- Dictionary of options specific to the chosen volume_driver. See
            L(here,https://docs.docker.com/storage/volumes/#use-a-volume-driver) for details.
        type: dict
      tmpfs_size:
        description:
          - "The size for the tmpfs mount in bytes in format <number>[<unit>]."
          - "Number is a positive integer. Unit can be one of C(B) (byte), C(K) (kibibyte, 1024B), C(M) (mebibyte), C(G) (gibibyte),
             C(T) (tebibyte), or C(P) (pebibyte)."
          - "Omitting the unit defaults to bytes."
        type: str
      tmpfs_mode:
        description:
          - The permission mode for the tmpfs mount.
        type: str
  name:
    description:
      - Assign a name to a new container or match an existing container.
      - When identifying an existing container name may be a name or a long or short container ID.
    type: str
    required: yes
  network_mode:
    description:
      - Connect the container to a network. Choices are C(bridge), C(host), C(none) or C(container:<name|id>).
    type: str
  userns_mode:
    description:
      - Set the user namespace mode for the container. Currently, the only valid value are C(host) and the empty string.
    type: str
    version_added: "2.5"
  networks: