Docker Commands - Part 3
Megha Sharma
Posted on November 23, 2024
๐ docker container restart: To restart a Docker container, you can use the docker restart
command. This command stops and then starts an already running container.
docker restart CONTAINER [CONTAINER NAME]
CONTAINER [CONTAINER...]:
This is the name or ID of the container(s) you want to restart.
For example, to restart a container named my_container
, you would run:
docker restart my_container
If you have multiple containers you want to restart, you can specify their names or IDs separated by spaces:
docker restart container1 container2 container3
This will stop and then start all specified containers. Itโs worth noting that the docker restart
command is not supported for Swarm services. If you're using Docker Swarm, you should use the docker service update
command to update a service, which includes restarting its containers if necessary.
To restart all containers on your Docker host, you can use a combination of docker ps -q
to get the list of running container IDs and docker restart to restart them.
docker restart $(docker ps -q)
Letโs break down whatโs happening here:
docker ps -q:
This command lists the IDs of all running containers. The-q
option is used to only display the container IDs, without any headers or additional information.$(...):
This is command substitution in Bash. It allows the output of one command (in this case,docker ps -q
) to be used as the input for another command (docker restart
).docker restart:
This command restarts one or more containers. When used with command substitution, it restarts all containers whose IDs are obtained from dockerps -q
.
So, when you run the command docker restart $(docker ps -q
), Docker restarts all running containers on your host.
Restarting a container can be useful for applying configuration changes, refreshing the containerโs environment, or troubleshooting issues. However, itโs essential to consider any impact on running services or applications when performing a restart.
๐ docker rename:
To rename a Docker container, you can use the docker rename
command.
docker rename CONTAINER NEW_NAME
Letโs say you have a container named old_container
that you want to rename to new_container
.
docker rename old_container new_container
๐ docker container cp: The docker container cp
command allows you to copy files or directories between a container and the local filesystem.
docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker container cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
[OPTIONS]:
This is where you can specify various options to customize the behavior of thedocker container cp
command. Common options include-L
,--follow-link
to follow symbolic links and-v
,--verbose
to display verbose output.CONTAINER:
This is the name or ID of the container you want to copy files to or from.SRC_PATH:
This is the path to the file or directory you want to copy. When copying from the container to the local filesystem, this path is relative to the root of the container's filesystem. When copying from the local filesystem to the container, this path is relative to the current directory on the local filesystem.DEST_PATH:
This is the destination path where the files or directories will be copied. When copying from the container to the local filesystem, this path is relative to the current directory on the local filesystem. When copying from the local filesystem to the container, this path is relative to the root of the container's filesystem.
For example, to copy a file named file.txt
from a container named my_container
to the current directory on the local filesystem, you would run:
docker container cp my_container:/path/to/file.txt .
Conversely, to copy a file named file.txt
from the local filesystem to a container named my_container
, you would run:
docker container cp file.txt my_container:/path/to/file.txt
Copy files from container to local path:
$ docker cp CONTAINER:/var/logs/ /tmp/app_logs
Similarly, you can copy directories as well. Just specify the directory path instead of the file path.
Itโs important to note that the docker container cp
command only works with running containers. If you need to copy files to or from a stopped container, you can use the docker cp
command instead.
๐ docker containe diff: The docker container diff
command is used to inspect changes made to the filesystem of a running container compared to its base image or filesystem snapshot. It shows the differences in the form of added (A), deleted (D), or modified (C) files and directories.
docker container diff CONTAINER_NAME OR CONTAINER_ID
CONTAINER:
This is the name or ID of the running container you want to inspect.
For example, to see the changes made to the filesystem of a container named my_container
, you would run:
docker container diff my_container
This command will output a list of filesystem changes in the container.
For instance, if youโve created a file named example.txt
within the container, the output might look like this:
$ docker diff my_container
A /example.txt
C /app.js
C /dev/console
C /dev/core
C /dev/stdout
C /dev/fd
C /dev/ptmx
C /dev/stderr
The output format typically consists of lines starting with A
, C
, or D
, followed by the path to the affected file or directory. Here's what each prefix represents:
-
A:
Added file or directory. -
C:
Changed file or directory (modified). -
D:
Deleted file or directory.
By using docker container diff
, you can easily inspect the changes made to a running Docker container's filesystem compared to its base image. This can be helpful for debugging, troubleshooting, or understanding the effects of various commands or processes running inside the container.
๐ docker container export: The docker container export
command allows you to export the contents of a container's filesystem as a tar archive. This command is useful when you want to save the state of a container's filesystem and share it with others or use it as a backup.
docker container export [OPTIONS] CONTAINER > archive.tar
[OPTIONS]:
This is where you can specify various options to customize the export process. Currently, there are no specific options for thedocker container export
command.CONTAINER:
This is the name or ID of the container you want to export.
For example, to export the contents of a container named my_container
to a tar archive named my_container.tar
, you would run:
docker container export my_container > my_container.tar
This command creates a tar archive containing the entire filesystem of the my_container
container and saves it as my_container.tar
.
Once the export is complete, you can share the tar archive with others, transfer it to another system, or keep it as a backup.
Itโs important to note that the docker container export
command only exports the filesystem contents of the container. It does not include metadata such as container configuration, environment variables, or networking settings. Additionally, it does not include any running processes or container state. If you need to export the entire state of a container, including its configuration and state, you may want to consider using the docker export
command instead.
๐ docker container import: Like export, we can import the container with a single command. You must have the exported file to the target server.
Once you have the tarball containing the containerโs filesystem, you can import it as an image using the docker import
command.
$ docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
[OPTIONS]:
This is where you can specify various options to customize the import process. Common options include-c
to apply Dockerfile instructions during import and-m
to add a description or annotation.file|URL|-:
This is the path to the tarball containing the exported filesystem. You can specify either alocal file path
, aURL
, or-
to read from standard input.[REPOSITORY[:TAG]]:
This is the name and optional tag you want to assign to the imported image.
For example:
docker import container.tar my_image:latest
This command imports the tarball container.tar
as a Docker image tagged as my_image:latest
.
After importing the image, you can verify that it was successfully imported by listing the Docker images on your system.
docker images
This command lists all Docker images, including the one you just imported.
๐ docker container pause: The docker container pause
command is used to pause all processes within a running container. This can be useful for temporarily suspending the execution of processes within a container without stopping it completely.
docker container pause CONTAINER [CONTAINER...]
CONTAINER [CONTAINER...]:
This is the name or ID of one or more running containers that you want to pause.
For example, letโs say you have a running container named my_container
and you want to pause it:
docker container pause my_container
This command will pause all processes running within the my_container
container. The processes will remain paused until you unpause them using the docker container unpause
command.
To pause multiple containers at once, you can specify their names or IDs separated by spaces:
docker container pause container1 container2 container3
This will pause all specified containers.
Once paused, the containerโs processes will stop executing, but the container itself will remain in the running state. You can confirm that the container is paused by checking its status with the docker ps
command.
docker ps
The paused containers will have their status shown as PAUSED
.
Itโs important to note that while a container is paused, it will not consume any CPU resources. However, memory usage and network connections will remain active. Additionally, any processes or applications running within the container will be temporarily halted.
๐ docker container unpause: The docker container unpause
command is used to unpause all processes within a paused container, allowing them to resume execution.
docker container unpause CONTAINER [CONTAINER...]
CONTAINER [CONTAINER...]:
This is the name or ID of one or more paused containers that you want to unpause.
For example, to unpause a paused container named my_container
, you would run:
docker container unpause my_container
This command will resume execution of all processes within the my_container
container.
To unpause multiple containers at once, you can specify their names or IDs separated by spaces:
docker container unpause container1 container2 container3
This will unpause all specified containers.
Once unpause, the containerโs processes will resume execution as usual.
Itโs important to note that if a container was not previously paused, running docker container unpause
on it will have no effect. Additionally, while a container is paused, its memory usage and network connections remain active, but its processes are halted.
๐ docker container kill: The docker container kill
command is used to forcefully stop one or more running containers by sending a SIGKILL signal to their main process. This command is typically used when you need to immediately stop a container without allowing it to perform any cleanup tasks or gracefully shut down its processes.
docker container kill [OPTIONS] CONTAINER [CONTAINER...]
-
[OPTIONS]:
This is where you can specify various options to customize the kill operation. Some common options include-s
,--signal
to specify a different signal to send and-f
,--force
to force the kill operation even if the container is not running. -
CONTAINER [CONTAINER...]:
This is the name or ID of one or more running containers that you want to kill.
For example, to kill a container named my_container
, you would run:
docker container kill my_container
This command sends a SIGKILL signal to the main process of the my_container
container, forcefully stopping it.
To kill multiple containers at once, you can specify their names or IDs separated by spaces:
docker container kill container1 container2 container3
This will kill all specified containers.
Itโs important to note that using docker container kill
is a forceful way to stop containers, and it should be used with caution. It does not allow containers to perform any cleanup tasks, so data loss or other undesirable consequences may occur if used indiscriminately. If possible, it's generally preferable to use docker container stop
to gracefully stop containers first, allowing them to perform any necessary cleanup actions before stopping completely.
๐ docker container stats: The docker container stats command is used to display a live stream of resource usage statistics for one or more running containers. It provides real-time information about CPU usage, memory usage, network I/O, and block I/O of the specified container(s).
docker container stats [OPTIONS] [CONTAINER...]
[OPTIONS]:
This is where you can specify various options to customize the output of thedocker container stats
command. Some common options include--format
to specify the output format and--no-stream
to disable the live streaming and display a single snapshot of container stats.CONTAINER [CONTAINER...]:
This is the name or ID of one or more running containers that you want to kill.
For example, to display live resource usage statistics for a container named my_container
, you would run:
docker container stats my_container
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b95a83497c91 my_container 0.28% 5.629MiB / 1.952GiB 0.28% 916B / 0B 147kB / 0B 9
This command will continuously stream resource usage statistics for the my_container
container until you manually stop it (e.g., by pressing Ctrl+C).
To display statistics for multiple containers at once, you can specify their names or IDs separated by spaces:
docker container stats container1 container2 container3
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b95a83497c91 container1 0.28% 5.629MiB / 1.952GiB 0.28% 916B / 0B 147kB / 0B 9
67b2525d8ad1 container2 0.00% 1.727MiB / 1.952GiB 0.09% 2.48kB / 0B 4.11MB / 0B 2
e5c383697914 container3 0.00% 196KiB / 1.952GiB 0.01% 71.2kB / 0B 770kB / 0B 1
This will display live resource usage statistics for all specified containers.
The output of docker container stats
typically includes columns such as CONTAINER ID, NAME, CPU %, MEM USAGE / LIMIT, MEM %, and more. It provides valuable insights into the resource consumption of containers, which can be useful for monitoring and troubleshooting purposes.
๐ docker container wait:
The docker container wait command is used to block until one or more containers stop, and then it outputs the exit status of those containers. It waits for the specified container(s) to exit and then returns the exit code of the container's main process.
docker container wait CONTAINER [CONTAINER...]
CONTAINER [CONTAINER...]:
This is the name or ID of one or more containers that you want to wait for.
For example, to wait for a container named my_container
to exit and then output its exit status, you would run:
docker container wait my_container
This command will block until the my_container
container stops, and then it will output the exit status of its main process.
You can also wait for multiple containers at once by specifying their names or IDs separated by spaces:
docker container wait container1 container2 container3
This will wait for all specified containers to exit and then output their exit statuses.
The docker container wait
command is often used in scripting or automation workflows where you need to wait for certain containers to finish their tasks before proceeding with further actions. It's particularly useful in scenarios where you need to coordinate actions across multiple containers or wait for a specific container to complete a task before continuing.
๐ docker container update:
The docker container update
command is used to update the configuration of one or more containers. It allows you to modify various container settings, such as CPU shares, memory limits, environment variables, and more, for containers that are already running.
docker container update [OPTIONS] CONTAINER [CONTAINER...]
-
[OPTIONS]:
This is where you can specify various options to customize the update process. Some common options include--cpu-shares
,--memory
,--restart
,--env
, and more. -
CONTAINER [CONTAINER...]:
This is the name or ID of one or more containers that you want to update.
For example, letโs say you have a running container named my_container
, and you want to update its CPU shares to give it more CPU resources:
docker container update --cpu-shares 512 my_container
This command updates the CPU shares of the my_container
container to 512.
You can also update multiple containers at once by specifying their names or IDs separated by spaces:
docker container update --restart=always container1 container2 container3
This command updates the restart policy of container1
, container2
, and container3
to always restart if they exit.
The docker container update
command allows you to dynamically adjust container configurations without needing to stop and recreate the containers. It can be useful for fine-tuning container resource allocations, applying new environment variables, or changing other container settings on-the-fly.
Posted on November 23, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.