# docker commit

<!---MARKER_GEN_START-->
Create a new image from a container's changes

### Aliases

`docker container commit`, `docker commit`

### Options

| Name              | Type     | Default | Description                                                |
|:------------------|:---------|:--------|:-----------------------------------------------------------|
| `-a`, `--author`  | `string` |         | Author (e.g., `John Hannibal Smith <hannibal@a-team.com>`) |
| `-c`, `--change`  | `list`   |         | Apply Dockerfile instruction to the created image          |
| `-m`, `--message` | `string` |         | Commit message                                             |
| `--no-pause`      | `bool`   |         | Disable pausing container during commit                    |


<!---MARKER_GEN_END-->

