Nội dung bài viết
Ở các phần trước mình đã giới thiệu tổng quan về Docker, các thành phần cấu tạo nên Docker. Image là gì ? Container là gì ? Đó cũng chính là điều kiện tiên quyết khi các bạn đọc đến bài này của mình.
Trong bài viết này mình sẽ tập trung viết về một số command cơ bản để thao tác với container.
Một số lưu ý nhỏ
Trong bài viết mình sẽ viết hai command trong một block chẳng hạn như thế này
docker run httpd
docker container run httpd
Cả hai command trên đều tương tự như nhau. Các bạn có thể chọn một trong hai. Bản thân mình thì thường sử dụng command trên cho nó ngắn gọn
Vì đâu có sự tương đương này? Là do Docker v1.13 đã tái cấu trúc lại CLI.
Một số option hay sử dụng trong bài viết:
-d detach container
(Có thể hiểu là chạy ngầm container cũng được). Ví dụ nếu không có option này chạy container, cửa sổ dòng lệnh phải giữ phiên. Nếu kết thúc cửa sổ dòng lệnh, container cũng stop theo.
-t Tạo một pseudo-TTY
: Ví dụ nếu không có option này khi attach lại container thì sẽ không có cửa sổ dòng lệnh
-i giữ lại một STDIN kể cả khi detach
: Ví dụ nếu không có option này khi attach lại container thì khi gõ command sẽ không có kết quả trả về. Theo khuyến cáo thì nên sử dụng cả 3 option này theo dạng -itd
đối với các command như: docker run, docker create …
Docker làm việc, tương tác với các thành phần qua ID hoặc NAME
Nhóm các Command liên quan đến Lifecycle của Container
Hiển thị list các container
- Ý nghĩa: Hiển thị list danh sách các container đang được Docker quản lý
docker ps [OPTIONS]
docker container ls [OPTIONS]
- Ví dụ list các container đang chạy (Up)
docker ps
- Ví dụ list tất cả các container
docker ps -a
Tạo mới một container
- Ý nghĩa: Tạo mới một container nhưng không start
- Cú pháp:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]
- Ví dụ:
docker create -itd centos
Chạy một container
- Ý nghĩa: Tạo mới một container và start container đó luôn
- Cú pháp:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
- Ví dụ:
docker run -itd centos
Xóa container
- Ý nghĩa: Xóa Container
- Cú pháp:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker container rm [OPTIONS] CONTAINER [CONTAINER...]
- Ví dụ xóa một container đã stop
docker rm my-container
- Ví dụ xóa một container đã stop
docker rm my-container
- Ví dụ xóa một container chưa stop
docker rm -f my-container
- Ví dụ xóa tất cả các container
docker rm -f $(docker ps -aq)
Xóa tất cả container đang stop
- Ý nghĩa: Xóa tất cả các container đang stop
- Cú pháp:
docker prune [OPTIONS]
docker container prune [OPTIONS]
- Ví dụ:
docker prune
Nhóm các Command quản lý trạng thái của container
Start container
- Ý nghĩa: Start một container
- Cú pháp:
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker container start [OPTIONS] CONTAINER [CONTAINER...]
- Ví dụ:
docker start my-container
Stop container
- Ý nghĩa: Stop một container
- Cú pháp:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker container stop [OPTIONS] CONTAINER [CONTAINER...]
- Ví dụ:
docker stop my-container
Restart container
- Ý nghĩa: Restart một container
- Cú pháp:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
docker container restart [OPTIONS] CONTAINER [CONTAINER...]
- Ví dụ:
docker restart my-container
Pause container
- Ý nghĩa: Tạm dừng lại một container
- Cú pháp:
docker pause CONTAINER [CONTAINER...]
docker container pause CONTAINER [CONTAINER...
- Ví dụ:
docker pause my-container
Unpause container
- Ý nghĩa: Tạm dừng lại một container
- Cú pháp
docker pause CONTAINER [CONTAINER...]
docker container pause CONTAINER [CONTAINER...
- Ví dụ:
docker pause my-container
Kill container
- Ý nghĩa: Kill một hoặc nhiều container (Kill ở đây giống như stop, container chỉ bị stop chứ không mất đi)
- Cú pháp
docker kill [OPTIONS] CONTAINER [CONTAINER...]
docker container kill [OPTIONS] CONTAINER [CONTAINER...]
- Ví dụ:
docker kill my-container
Nhóm các Command hiển thị thông tin của container
Log container
- Ý nghĩa: Hiển thị log của container
- Cú pháp
docker logs [OPTIONS] CONTAINER
docker container logs [OPTIONS] CONTAINER
- Ví dụ
docker logs my-container
Hiển thị thông tin container
- Ý nghĩa: Hiển thị thông tin chi tiết của container
- Cú pháp
docker inspect [OPTIONS] CONTAINER [CONTAINER...]
docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
- Ví dụ
docker inspect my-container
Hiển thị tài nguyên của contaier
- Ý nghĩa: Hiển thị tài nguyên đang sử dụng của contaier
- Cú pháp
docker stats [OPTIONS] [CONTAINER...]
docker container stats [OPTIONS] [CONTAINER...]
- Ví dụ:
docker stats my-container
Hiển thị các tiến trình đang chạy trong container
- Ý nghĩa: Hiển thị các tiến trình đang chạy trong container
- Cú pháp
docker top CONTAINER [ps OPTIONS]
docker container top CONTAINER [ps OPTIONS]
- Ví dụ:
docker top my-container
Hiển thị các port được map
- Ý nghĩa: Hiển thị các port mapping hoặc một port mapping cụ thể
- Cú pháp
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
docker container port CONTAINER [PRIVATE_PORT[/PROTO]]
- Ví dụ
docker port my-container
Hiển thị các thay đổi về filesystem trong container
- Ý nghĩa: Hiển thị các thay đổi về filesystem trong container từ lúc create container
- Cú pháp
docker diff CONTAINER
docker container diff CONTAINER
- Ví dụ
docker diff my-container
Nhóm các Command thực thi với container#
Attach container
- Ý nghĩa: Attach một màn hình cho phép nhập input và hiển thị output đối với một container đang chạy
- Cú pháp
docker attach [OPTIONS] CONTAINER
docker container attach [OPTIONS] CONTAINER
- Ví dụ
docker attach my-container
Thực thi một câu lệnh trong container
- Ý nghĩa: Thực thi một câu lệnh trong container đang chạy
- Cú pháp
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
- Ví dụ
docker exec my-container free -m
Update resource cho container
- Ý nghĩa: Update resource cho container, mở rộng, limit tài nguyên cho container
- Cú pháp
docker update [OPTIONS] CONTAINER [CONTAINER...]
- Ví dụ
docker update -m 512M --memory-swap 1024M my-container
Copy file giữa host và container
- Ý nghĩa: Copy file giữa Docker host và container
- Cú pháp
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
- Ví dụ
docker cp my-container:/opt/myfile /opt/
docker cp myfile1.txt my-container:/opt/
Đổi tên container
- Ý nghĩa: Đổi tên một container
- Cú pháp
docker rename CONTAINER NEW_NAME
docker container rename CONTAINER NEW_NAME
- Ví dụ
docker rename my-container my-container1
Export toàn bộ filesystem trong container
- Ý nghĩa: Export toàn bộ filesysystem trong container thành một file tar
- Cú pháp
docker export [OPTIONS] CONTAINER
docker container export [OPTIONS] CONTAINER
- Ví dụ
docker export -o huytm.tar my-container
Tạo một image từ container đang chạy
- Ý nghĩa: Tạo một image từ container đang chạy
- Cú pháp
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- Ví dụ
docker container commit my-container my_new_image
Như vậy trong bài viết này mình đã giới thiệu một số các command cở bản để làm việc với container. Mỗi commnad có các option - hay còn gọi là flag đi kèm. Trong phạm vi bài viết mình chưa thể giới thiệu sâu về các option này, mình sẽ có một bài viết cụ thể cho từng command sau.
Bài viết này chỉ giới thiệu các command cơ bản đủ để thao tác và tìm hiểu về Docker.