20 trường hợp sử dụng lệnh Docker cho developer

Công nghệ sẽ phát huy một cách tốt nhất nếu bạn biết cách tận dụng nó, và điều này cũng tương tự với Docker.

Những trường hợp về các command cụ thể kèm theo lời giải thích và các bản demo sẽ có trong bài viết này. Hãy cùng mọi người trong team tham khảo khi áp dụng Docker trong thực tế nhé!

docker build

docker build --rm -t docker-examples:latest .

Trường hợp sử dụng: Bạn không có docker-compose file mà chỉ có dockerfile. Nếu bạn muốn chạy service của mình, tuy nhiên bạn phải build nó trước đã.

Chi tiết: Build một file ảnh từ một dockerfile.

--rm: được sử dụng để xóa một container trung gian sau khi đã build thành công. Sau khi build mà không có option đó trong danh sách container của bạn, cái này sẽ xuất hiện:

-t : gắn thẻ hình ảnh được build. Nếu không cái này, chúng ta sẽ rất khó biết có gì chứa trong đó nếu chỉ nhìn lướt qua

Phím tắt với VS Code

docker build --rm -t --no-cache docker-examples:latest .

Trường hợp sử dụng: Bạn không chỉ rõ một gói phiên bản phụ thuộc và muốn cập nhật lên phiên bản mới nhất, nhưng bạn không thay đổi dockerfile và Docker liên tục sử dụng các layer được lưu trong bộ nhớ cache.

Chi tiết: Buộc Docker build lại hình ảnh từ đầu.

  Tối ưu Docker Image trong production - câu chuyện 1GB hay 100MB
  Cách thiết lập một dự án Symfony để làm việc với Docker Subdomains

docker run

docker run -d -p 4000:3000 docker-examples:latest

Trường hợp sử dụng: Bạn đã build hình ảnh Docker và muốn chạy nó. Ứng dụng bên trong container sử dụng 3000 port, nhưng bạn muốn sử dụng 4000 port trên máy cục bộ của mình.

Chi tiết:

-d : chạy container trong background và trong ID container.

-p : xuất cổng container tới cổng máy cục bộ

host_port: docker_port.

Phím tắt với VS Code

docker run docker-examples:latest

Trường hợp sử dụng: Dùng để chạy docker và kiểm soát launch process trong terminal của mình. Ấn Ctrl + C để thoát khỏi container

docker run -t -i docker-examples:latest node

Trường hợp sử dụng: Dùng để chạy một command, tool hay một instance mới của container ( Ví dụ như nếu bạn muốn truy cập vào bảng điều khiển node.js và thực thi một cái gì đó). Xem thêm các docker exec cho các container đã khởi chạy.

docker stop

docker stop container_name

Trường hợp sử dụng: Dùng để dừng một launched containery.

Chi tiết: Bạn có thể tìm thấy tên container bằng cách sử dụng command “docker ps -a”

Phím tắt với VS Code

docker stop $(docker ps -a -q)

Ví dụ: Dừng tất cả các container

docker ps

docker ps -a

Trường hợp sử dụng: Bạn muốn tìm tên của container cần được dừng. Bạn cũng có thể sử dụng cái này để xem trạng thái và các cổng tiếp xúc của container.

Phím tắt với VS Code

docker logs

docker logs -f container_name

Trường hợp sử dụng: docker logs sẽ cho bạn  biết lý do tại sao service của bạn bị sập khi đang chạy. Hoặc khi bạn muốn xem các log cho một service trên cơ sở liên tục.

Chi tiết: Theo dõi các log của container cụ thể; cái này cũng được dùng để chạy và dừng container.

-f bật theo sau log output

Phím tắt với VS Code

docker kill

docker kill $(docker ps -q)

Trường hợp sử dụng: Bạn muốn xem mọi thứ về Docker khi có vấn đề xảy ra

Chi tiết: Xóa tất cả các container đang chạy.

docker rm

docker rm $(docker ps -a -q)

Trường hợp sử dụng: Bạn muốn dọn dẹp một danh sách container lộn xộn

Chi tiết: Xóa tất cả các container đã dừng

docker system

docker system prune

Trường hợp sử dụng: Bạn muốn loại bỏ những thứ không sử dụng nữa.

Chi tiết: Loại bỏ tất cả các container, netwwork, hình ảnh, tùy chọn và volume không còn sử dụng nữa

Phím tắt với VS Code

docker rmi

docker rmi $(docker images -q)

Trường hợp sử dụng: Bạn cần thêm dung lượng trên đĩa

Chi tiết: Xóa tất cả hình ảnh

docker exec

docker exec -it container_name /bin/sh

Trường hợp sử dụng: Khi container báo lỗi connection timeout của “get” request trong quá trình execution của example.com. Lúc đấy, bạn có thể kết nối với container và chạy curl / ping.

Chi tiết: Chạy một command / tool cụ thể bên trong container và tự cho phép bạn sử dụng nó bên trong container. Việc này rất hữu ích cho việc debug và để biết cái gì xảy ra trong Docker container

docker-compose up

docker-compose up

Trường hợp sử dụng: Bạn có một docker-compose file với một số service, bạn muốn build rồi chạy tất cả để xem output như thế nào.

docker-compose up -d

Trường hợp sử dụng: Bạn muốn build và chạy tất cả các service nền và sau đó xem trạng thái của chúng.

Phím tắt với VS Code

docker-compose up -d example-service-1

Trường hợp sử dụng: Bạn muốn chạy một service cụ thể (tên như trong docker-compose file) để tất cả các port và volume được sử dụng trong docker compose file trong service đó

docker-compose down

docker-compose down

Trường hợp sử dụng: Bạn cần dừng tất cả các service được khai báo trong docker-compose file. Lệnh này dừng các container và loại bỏ từng network, volume và hình ảnh của container được tạo bởi ip. Và nó cũng rất hữu ích khi bạn muốn bắt đầu từ một sheet clean.

docker-compose run

docker-compose run example_app rails db:migrate

Trường hợp sử dụng: Bạn cần chạy một task cụ thể (ví dụ như di chuyển, kiểm tra) mà service của bạn cung cấp. Bạn có thể thực hiện tương tự như chạy docker, nhưng cũng có thể theo tên service từ docker-compose run. Hãy nhớ rằng khi bạn sử dụng các cổng “run”, các khai báo trong docker-compose sẽ không được xuất ra nếu không sử dụng –service-port.

docker-compose exec

docker-compose exec example_app node

Trường hợp sử dụng: Lệnh này tương tự với docker exec khi bạn muốn truy cập vào bên trong container đã khởi chạy và thực thi một cái gì đó. Điểm khác biệt giữa hai cái là bạn có thể truy cập bằng tên service. Lệnh này rất hữu ích cho việc gỡ lỗi, kiểm tra mạng và kiểm tra xem tất cả dữ liệu có tồn tại bên trong bộ chứa Docker không.

docker-compose logs

docker-compose logs -f container_name

Trường hợp sử dụng: Service của bạn bị sập khi đang khởi chạy và bạn muốn biết lý do tại sao.

Chi tiết: Xem các log của container cụ thể, kể cả những cái đang chạy và bị dừng lại. Thay vì sử dụng lệnh docker logs thì hãy sử dụng tên service thay cho tên container.

-f bật theo sau log output.

docker-compose stop

docker-compose stop example_app

Trường hợp sử dụng: Bạn muốn dừng container theo tên service hoặc tên container.

docker-compose restart

docker-compose restart example_app

Trường hợp sử dụng: Bạn muốn khởi động lại một container với tên service hoặc tên container.

Đừng bỏ lỡ những bài viết hay về:

Xem thêm việc làm Web Developer mới nhất trên TopDev

TopDev via dev.to