1. Docker Generic Commands
- List objects:
docker <object> ls
- Inspect object:
docker <object> inspect <object name or id>
- Remove object:
docker <object> rm <object name or id>
- Remove unused objects:
docker <object> prune
2. Docker Images
- Image Registry:
- Collection of Docker images.
- Types:
- Custom/Private: Hosted by organizations/companies.
- Public: Hosted at
hub.docker.com
.
- Commands:
- List images:
docker image ls
- Pull image:
docker image pull <image name>
(e.g., docker image pull hello-world
)
- Inspect image:
docker image inspect <image name>
(e.g., docker image inspect hello-world
)
- Remove image:
docker image rm <image name or id>
(e.g., docker image rm hello-world
)
- Remove unused images:
docker image prune
3. Docker Containers
- Key Points:
- Runs one application at a time.
- Stops when the application stops (finished or errored).
- Data is not persistent; removed when container is deleted.
- Commands:
- List running containers:
docker container ls
- List all containers (Created, Running, Exited):
docker container ls -a
- Create container:
docker container create <image name or id>
(e.g., docker container create hello-world
)
- Start container:
docker container start <container name or id>
- Stop container:
docker container stop <container name or id>
- View logs:
docker container logs <container name or id>
- Inspect container:
docker container inspect <container name or id>
- Remove exited container:
docker container rm <container name or id>
- Remove running container:
docker container rm -f <container name or id>
- Run container (create + start):
- Foreground:
docker container run <image name or id>
(e.g., docker container run httpd
)
- Background with options:
docker container run -d -i -t --name <container name> -p <source port>:<destination port> -v <volume name>:<container mount path> <image name or id>
- Example:
docker container run -d -i -t --name myhttpd -p 8080:80 httpd
- MySQL example:
docker container run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v mysql-volume:/var/lib/mysql mysql
- Execute command in container:
docker container exec <container name or id> <command>
(e.g., docker container exec myhttpd date
)
- Access terminal:
docker container exec -it <container name or id> bash
(or sh
)
- Remove unused containers:
docker container prune
- Run Parameters:
d
: Detached mode (background).
i
: Interactive mode.
t
: Allocate terminal.
-name
: Set container name.
p
: Publish port (e.g., 8080:80
).
e
: Set environment variable (e.g., MYSQL_ROOT_PASSWORD=root
).
v
: Attach volume (e.g., mysql-volume:/var/lib/mysql
).
4. Docker Volumes
- Commands:
- List volumes:
docker volume ls
- Create volume:
docker volume create <volume name>
- Remove volume:
docker volume rm <volume name>
- Remove unused volumes:
docker volume prune
5. Key Concepts
- Images: Blueprints for containers, stored in registries.
- Containers: Running instances of images, non-persistent by default.
- Volumes: Persistent storage for containers.
- Container Lifecycle: Created → Running → Exited → Removed.
- Run vs. Create + Start:
run
combines create
and start
.