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.
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ề:
- Nhập môn lập trình web, có nên học WordPress?
- Docker – Config Docker Trên WordPress
- Docker là gì? Tìm hiểu về Docker
Xem thêm việc làm Web Developer mới nhất trên TopDev
TopDev via dev.to