Docker Create Container

In this quick guide, we will see how to create a Docker container from a Docker image.

Understanding docker create Command

Most Docker users are familiar with the docker run command, which creates and starts a container in a single step. However, Docker provides a two-step approach as well, allowing for more granular control:

  • docker create: This initializes the container. 
  • docker start: This sets the container in motion. 

In essence, docker creates a container instance from a specified image without actually starting it. 

The Syntax: 

The basic structure of the docker create command is:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Practical Use-Cases

Why might you use docker create instead of docker run? 

Configuration Control: Sometimes, you might want to create a container with specific configurations and only start it later once everything is set. 

Batch Operations: If you need to create multiple containers simultaneously and start them later based on certain conditions or schedules. 

Testing: It allows for testing container creation scripts without actually running the containers.

Examples in Action

Basic Container Creation: 

To create a container from an image named myapp:

docker create myapp

This command will output a long container ID, which you can use to start, inspect, or manage the container later.

Naming Your Container: 

Assigning a name to your container can make it more recognizable:

docker create --name my_container_name myapp

Using the --name option, we can give a name to the container that we create.

Specifying Environment Variables:

You might need to provide specific environment variables for your application:

docker create -e "MY_VAR=value" myapp

Binding Ports: 

To expose a container's port to the host, use the -p option:

docker create -p 8080:80 myapp

This binds the host's 8080 port to the container's 80 port. 

Mounting Volumes: 

To persist data or share directories between the host and container:

docker create -v /host/directory:/container/directory myapp

Starting the Created Container: 

After creating your container using the docker create command, you can start it using:

docker start container_id_or_name

For example, you can run the container named myapp:

docker start myapp


While docker run offers a swift and convenient way to get containers up and running, docker create provides an avenue for those seeking an added layer of control in their container lifecycle. Happy Dockering!

Related Container Management Guides