Docker Commands - Frequently Used
This is a collection of docker commands that I have ever been. And I still keep it up-to-date currently.
Init Docker
Install docker using the convenience script
1
2
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run
Run a new container
Start a new container
1
docker run IMAGE
Map a port
1
docker run -p HOST_PORT:CONTAINER_PORT IMAGE
Ex:
docker run -p 8080:80 nginx
Map all port
1
docker run -P IMAGE
Manage containers
A list of running containers
1
docker ps
A list of all containers
1
docker ps -a
Remove a container
1
docker rm CONTAINER
Remove a running container
1
docker rm -f CONTAINER
Delete stopped containers
1
docker container prune
Stop a running container
1
docker stop CONTAINER
Start a stopped container
1
docker start CONTAINER
Manage images
Download an image from a Docker registry
1
docker pull IMAGE
Delete an image
1
docker rmi IMAGE
Lists all docker images available on the system.
1
docker images
Build & tag an image from a Dockerfile
1
docker build -t IMAGE DIRECTORY
Docker network
Lists all Docker networks
1
docker network list
Create a new docker network
1
docker network create reverseproxy-nw
Remove a docker network
1
docker network rm reverseproxy-nw
Info & Stats
Show installed docker version
1
docker version
Show stats of running containers
1
docker stats
Show the logs of a container
1
docker logs CONTAINER
Show cấu hình của container ở low-level (JSON format)
1
docker inspect CONTAINER
Show processes of container
1
docker top CONTAINER
Docker compose
- Start containers which are defined in docker-compose.yml
1
docker-compose up -d
Detached mode: Run containers in the background, print new container names
1
docker-compose up --build
Rebuild the images for the services in the
docker-compose.yml
file before starting the containers
- Stop containers which are defined in docker-compose.yml
1
docker-compose down
1
docker-compose down -v
Stops and removes containers, networks, and volumes
- See docker-compose logs
1
docker-compose logs <name-of-service>
Options: –no-color Produce monochrome output. -f, –follow Follow log output. -t, –timestamps Show timestamps. –tail=”all” Number of lines to show from the end of the logs for each container.
1
docker-compose logs -f -t >> myDockerCompose.log
To save the output to a file
1
docker-compose logs -t -f --tail <no of lines>
see output logs from all the services in your terminal
Ex: show logs của tất cả service docker, chỉ 5 dòng cuối
1
docker-compose logs -t -f --tail 5
1
docker-compose logs -t -f --tail <no of lines> <name-of-service1> <name-of-service2> ... <name-of-service N>
log output from specific services
Ex: say you have API and portal services then you can do something like below. Where 5 represents last 5 lines from both logs.
1
docker-compose logs -t -f --tail 5 portal api
Operation & Tshoot
ERROR »> ‘ContainerConfig’
1
docker compose up -d --force-recreate
Upgrade hoặc restart một server có docker container
Cần đảm bảo rằng các container sẽ được tự động khởi động lại sau khi hệ thống khởi động lại, hoặc lưu trạng thái để không mất dữ liệu quan trọng:
Bước 1: Kiểm tra các container đang chạy
1
docker ps
Bước 2: Cấu hình container tự động khởi động lại sau khi reboot Để đảm bảo các container được tự động khởi động lại sau khi hệ thống restart, bạn có thể cấu hình restart policy cho các container. Sử dụng lệnh dưới đây để cấu hình cho container hiện tại:
1
docker update --restart unless-stopped <container_name>
Trong đó, <container_name>
là tên hoặc ID của container. Tùy chọn unless-stopped sẽ đảm bảo rằng container chỉ không khởi động lại nếu trước đó nó đã được dừng thủ công.
Bước 3: Cập nhật hệ thống Ubuntu Tiếp theo, bạn có thể thực hiện quá trình upgrade hệ thống. Điều này có thể được thực hiện thông qua các lệnh thông thường:
1
2
sudo apt update
sudo apt upgrade
Bước 4: Restart server (nếu cần)
1
sudo reboot
Bước 5: Kiểm tra lại các container sau khi khởi động lại
1
docker ps
Nếu các container đã được thiết lập đúng với chính sách restart unless-stopped, chúng sẽ tự động khởi động lại và chạy bình thường.
Cách an toàn: chủ động stop tất cả các container trước khi upgrade hoặc restart Nếu bạn muốn dừng tất cả các container trước khi nâng cấp và sau đó khởi động lại chúng sau khi hoàn tất:
Dừng tất cả container
1
docker stop $(docker ps -q)
Thực hiện upgrade
1 2
sudo apt update sudo apt upgrade
Khởi động lại tất cả container sau khi nâng cấp xong
1
docker start $(docker ps -a -q)
Bonus Sử dụng command sau để kiểm tra xem một container Docker có được cấu hình để tự động khởi động lại sau khi restart server hay không:
1
'docker inspect -f "" <CONTAINER_OR_ID>'
Trong đó:
<CONTAINER_OR_ID>
là tên hoặc ID của container mà bạn muốn kiểm tra.
Restart Policy:
- no: Container sẽ không tự động khởi động lại.
- always: Container sẽ tự động khởi động lại bất cứ khi nào nó dừng lại hoặc khi hệ thống khởi động lại.
- unless-stopped: Container sẽ tự động khởi động lại trừ khi nó được dừng thủ công.
- on-failure: Container sẽ chỉ khởi động lại nếu nó dừng lại do lỗi (với mã thoát khác 0).
Ví dụ:
1
'docker inspect -f "" my_container'
Updating…
Reference
The Ultimate Docker Cheat Sheet | dockerlabs (collabnix.com)