Tìm hiểu Docker Command Line
Bài đăng này đã không được cập nhật trong 4 năm
Như hứa hẹn ở bài trước, trong bài viết này, mình sẽ chia sẻ tiếp về Docker Command Line nha
Hiện tại. việc sử dụng docker đã dần trở nên quen thuộc và cho thấy được hiệu quả của nó so với việc cài đặt môi trường theo cách cổ điển. Vì vậy, việc thông thạo docker cũng dần trở nên cần thiết, tựa như việc bạn cần phải thông thạo Git command vậy. Thế thì tại sao chúng ta lại không tìm hiểu về Docker Command Line nhỉ ?
docker images
- Sử dụng để hiển thị danh sách images
$ docker images [OPTIONS] [REPOSITORY[:TAG]]
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
haihachan/2020-09-test latest 721106855c17 7 days ago 1.23MB
latest latest 721106855c17 7 days ago 1.23MB
Một số options:
--all , -a
: Hiển thị tất cả images, kể cả images ẩn--digests
: Hiển thị thông tin Digest của images--filter , -f
: Lọc images theo điều kiện$ docker images --filter=reference='busy*:*libc' REPOSITORY TAG IMAGE ID CREATED SIZE busybox uclibc e02e811dd08f 5 weeks ago 1.09 MB busybox glibc 21c16b6787c6 5 weeks ago 4.19 MB
--format
: Hiển thị danh sách images theo format chỉ định$ docker images --format "{{.ID}}: {{.Repository}}" 77af4d6b9913: <none> b6fa739cedf5: committ
--quiet , -q
: Chỉ hiển thị danh sách ID
docker search
Dùng để tìm kiếm images
$ docker search [OPTIONS] TERM
Một số options:
--filter , -f
: Lọc images theo điều kiện--automated
: Only show automated builds$ docker search --filter is-automated=true progrium/busybox NAME DESCRIPTION STARS OFFICIAL AUTOMATED progrium/busybox 50 [OK] $ docker search --automated progrium/busybox NAME DESCRIPTION STARS OFFICIAL AUTOMATED progrium/busybox 50 [OK]
--format
: Định dạng output, tương tự lệnhdocker images
$ docker search --format "{{.Name}}: {{.StarCount}}" nginx nginx: 5441 jwilder/nginx-proxy: 953 richarvey/nginx-php-fpm: 353
--limit
: Giới hạn kết quả output--no-trunc
: Không xóa output--stars , -s
: Chỉ hiển thị nếu images đủ start$ docker search --filter is-official=true --filter stars=3 busybox NAME DESCRIPTION STARS OFFICIAL AUTOMATED progrium/busybox 50 [OK] radial/busyboxplus Full-chain, Internet enabled, busybox made... 8 [OK]
docker pull
Để pull một images, chúng ta sẽ sử dụng lệnh
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Một số options:
--all-tags , -a
: Download tất cả các tagged images trên repository--disable-content-trust
: Mặc định làtrue
, Bỏ qua việc xác thực image--platform
: Set platform nếu server là một multi-platform
docker push
Push image lên Docker Hub, bạn chỉ có thể push sau khi đã commit và tạo tag (có vẻ giống git ha )
$ docker push [OPTIONS] NAME[:TAG|@DIGEST]
Một số options:
--disable-content-trust
: Mặc định làtrue
, Bỏ qua việc xác thực image
docker build
Lệnh này dùng để build docker file image
$ docker build [OPTIONS] PATH | URL | - < <docker_file_path>
- PATH: đường dẫn tới thư mục chứa docker file của image
$ docker build ~/home/my-docker-image/
- URL: link đường dẫn tới nguồn chứa source code của image, ví dụ như link github/gitlab,...
$ docker build https://github.com/docker/rootfs.git#container:docker
- Bạn cũng có thể dùng cú pháp
- <
cùng đường dẫn tới file docker image để thực thi lệnh này$ docker build - < ~/home/my-docker-image/Dockerfile
- Một số options:
--file | -f
: Chỉ định file mà bạn muốn build
$ docker build -f Dockerfile.debug
--tag | -t
: Chỉ định tag mà bạn muốn build. Bạn cũng có thể build đồng thời nhiều images
$ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1
--output | -o
: Chỉ định ghi lại đầu ra khi build images Ví dụ mình sẽ chỉ định bản build lưu ra file zipout.tar
.
$ docker build -o - . > out.tar
docker run
Lệnh run image thành container.
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
Một số tùy chọn:
--name
Đặt tên cho container$ docker run --name test -it debian $ docker ps -a | grep test d6c0fe130dba debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago
-w
: Chỉ định thư mục được thực thi lệnh. Mặc định là bên trong container$ docker run -w /path/to/dir/ -i -t ubuntu pwd
-a
: Cho phép lệnh liên kết với STDIN, STDOUT hoặc STDERR của vùng chứa, giúp bạn có thể thao tác với output và input khi cần thiết.--restart
: Chính sách restart lại container. Có 4 chính sách là:no
,on-failure[:max-retries]
,unless-stopped
vàalways
$ docker run --restart=always redis
--network
: Kết nối container với internet$ docker run -itd --network=my-net busybox
docker rename
Đơn giản là bạn muốn đổi tên container thôi
$ docker rename CONTAINER NEW_NAME
docker kill
Lệnh ngừng một hoặc nhiều container đang chạy.
$ docker kill [OPTIONS] CONTAINER [CONTAINER...]
docker stop
Để dừng một hoặc nhiều container đang chạy
$ docker stop [OPTIONS] CONTAINER [CONTAINER...]
Option: --time , -t
: Mặc định là 10s, sau thời gian này, nếu không thể stop thì container sẽ bị kill.
docker start
Lệnh start lại 1 hoặc nhiều contaner đã dừng
$ docker start [OPTIONS] CONTAINER [CONTAINER...]
docker restart
Lệnh restart lại một hoặc nhiều container đã stop
$ docker restart [OPTIONS] CONTAINER [CONTAINER...]
Option: --time , -t
: Mặc định là 10s, sau thời gian này, nếu không thể restart thì container sẽ bị stop.
docker diff
Lệnh để kiểm tra các thay đổi đối với tệp hoặc thư mục trên hệ thống tệp của container
$ docker diff CONTAINER
$ docker diff 1fdfd1f54c1b
C /dev
C /dev/console
C /dev/core
C /dev/stdout
C /run
A /run/nginx.pid
C /var/lib/nginx/tmp
A /var/lib/nginx/tmp/client_body
docker history
$ docker history [OPTIONS] IMAGE
Một số options:
--format
: Định nghĩa định dạng output$ docker history --format "{{.ID}}: {{.CreatedSince}}" busybox f6e427c148a7: 4 weeks ago <missing>: 4 weeks ago
--human , -H
: Mặc định làtrue
, in ra thông số có thể đọc hiểu bằng ngôn ngữ tự nhiên--quiet , -q
: Chỉ hiển thị danh sách IDs
docker rm
Lệnh xóa 1 hoặc nhiều contaniers
$ docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rmi
Lệnh xóa 1 hoặc nhiều images
$ docker rmi [OPTIONS] IMAGE [IMAGES...]
All rights reserved