Docker cho phép các ứng dụng và những dependency của chúng chạy ổn định trên máy tính bằng cách đóng gói chúng vào các container, là các môi trường portable, biệt lập. Đây là giải pháp lý tưởng nếu bạn muốn có quy trình làm việc đáng tin cậy, có thể lặp lại mà không cần lo lắng về việc một công cụ hoặc hệ thống có hoạt động trên máy của mình hay không.
Nhưng việc sử dụng Docker hiệu quả không chỉ dừng lại ở việc cài đặt và chạy container. Bạn sẽ tận dụng tối đa Docker khi bạn biết các lệnh mang lại cho bạn khả năng hiển thị, kiểm soát và hiệu quả.
Docker Compose
Chạy môi trường đa service một cách tự tin

Trước khi bắt đầu sử dụng lệnh Compose, mọi người thường chạy từng container một và chỉ có thể hy vọng chúng kết nối chính xác. Cách tiếp cận này là thủ công và thường dẫn đến quy trình làm việc dễ xảy ra lỗi. Tuy nhiên, việc sử dụng lệnh Compose đã biến Docker thành một quy trình làm việc tự động, chỉ với một lệnh duy nhất, trong đó các service, hình ảnh, cổng, biến môi trường và volume được định nghĩa trong file docker-compose.yml.
Lệnh dưới đây cho phép khởi động toàn bộ stack trong nền:
docker compose up -dSau khi thử nghiệm, bạn có thể tắt mọi thứ bằng lệnh:
docker compose downVới cặp lệnh đơn giản này, bạn sẽ kiểm soát Docker tốt hơn.
Docker exec -it <container> bash
Khắc phục sự cố container từ bên trong

Điều cần thiết là phải biết cách khắc phục sự cố Docker container, và dưới đây là lệnh thường được dùng. Hãy sử dụng nó khi cần kiểm tra đường dẫn file, xác minh cấu hình, chạy thử nghiệm nhanh hoặc gỡ lỗi sự cố ngay tại nơi chúng xảy ra:
docker exec -it myapp bashNếu bash không có sẵn, bạn có thể chuyển sang lệnh này:
docker exec -it myapp shSử dụng một trong hai lệnh này sẽ mở một shell tương tác, cho phép bạn khám phá môi trường thực tế của container.
Docker logs -f <container>
Đọc nhật ký trực tiếp và ngừng phỏng đoán

Nhật ký cung cấp một cách hữu ích để phát hiện các vấn đề tiềm ẩn, và lệnh Docker này rất tiện dụng:
docker logs -f myappVới lệnh này, bạn có thể truy cập nhật ký khi một container không khởi động được. Thêm flag -f để giữ cho nhật ký được truyền trực tiếp. Bằng cách đó, bạn có thể theo dõi trình tự khởi động của container. Việc này giúp dễ dàng nhận thấy thông tin đăng nhập cơ sở dữ liệu bị thiếu, lỗi chính tả biến môi trường hoặc các cổng được cấu hình kém.
Đôi khi, nhật ký có thể dài, khiến việc tìm kiếm các yếu tố cụ thể hoặc khắc phục sự cố trở nên khó khăn. Do đó, hãy giới hạn kết quả nhật ký mà bạn thấy ở 50 dòng cuối cùng bằng lệnh dưới đây:
docker logs --tail 50 myappDocker build
Xây dựng các image có thể dự đoán được với việc gắn tag đúng cách

Lệnh build yêu cầu daemon Docker bắt đầu quá trình tạo image. Khi mới bắt đầu sử dụng Docker, các bản build thường rất lộn xộn. Mọi người thường không gắn tag gì cả và nhanh chóng có nhiều image không được gắn nhãn. Lệnh dưới đây sẽ khắc phục các bản build lộn xộn, không được gắn tag của bạn:
docker build -t myapp .Việc thêm flag -t sẽ gắn tag cho ảnh kết quả, giúp dễ dàng tái sử dụng và triển khai. Tiến thêm một bước nữa, bạn có thể thêm thêm phiên bản bằng lệnh dưới đây:
docker build -t myapp:v1 .Với điều này, tôi có thể kiểm tra các tính năng mà không bị mất dấu các bản build ổn định. Một lợi ích khác của việc gắn tag là ngăn ngừa sự lộn xộn, loại bỏ các image "lơ lửng" gây lãng phí không gian.
Docker ps -a
Ngừng việc mất dấu các container

Sau một thời gian sử dụng Docker, bạn thường bị mất dấu các container của mình, điều này khiến công cụ trở nên khó đoán. Một số cổng ngừng hoạt động và Docker đôi khi từ chối tạo container vì một số container mà bạn nghĩ mình đã xóa vẫn còn đó. Để thoát khỏi tình trạng này, hãy sử dụng lệnh Docker dưới đây, hiển thị các container đã thoát, bị lỗi hoặc dừng ngay lập tức:
docker ps -aCó thể sử dụng lệnh dưới đây để viết kịch bản hoặc dọn dẹp nhanh, vì nó chỉ trả về ID của container:
docker ps -qĐể xóa một container bị quên, hãy sử dụng lệnh:
docker rmMột trong những kỹ năng Docker bị đánh giá thấp nhất là biết những gì tồn tại và những gì có thể đang âm thầm gặp lỗi.
Docker inspect <container>
Xem mọi thứ về container một cách chi tiết

Lệnh docker inspect cung cấp sự rõ ràng khi Docker bắt đầu hiển thị các sự cố kết nối hoặc hành vi không mong muốn. Dưới đây là dạng cơ bản của lệnh:
docker inspect myappLệnh này hiển thị mọi chi tiết giống như Docker nhìn thấy, bao gồm các biến môi trường, cài đặt mạng, volume và điểm vào. Bạn có thể sử dụng lệnh dưới đây để trích xuất địa chỉ IP của một container khi tò mò về một thành phần cụ thể.
docker inspect --format='{{.NetworkSettings.IPAddress}}' myappBằng cách chạy các lệnh tập trung này, bạn có thể tránh phải xem qua vô số trang JSON để gỡ lỗi các cấu hình sai.
Docker system prune
Dọn dẹp tài nguyên Docker không sử dụng một cách an toàn

Khi bạn bắt đầu sử dụng Docker, nó sẽ âm thầm tích lũy các tài nguyên không cần thiết, chẳng hạn như những image cũ, mạng không sử dụng và các container đã dừng. Theo thời gian, điều này sẽ làm chậm mọi thứ nếu không được dọn dẹp. Hãy bắt đầu quy trình dọn dẹp của mình với phiên bản an toàn:
docker system pruneLệnh này giữ lại các image của bạn, nhưng xóa các container và mạng không sử dụng. Bạn có thể thực hiện dọn dẹp sâu hơn và xóa cả các image bằng cách chạy lệnh sau:
docker system prune -aCuối cùng, bạn có thể chạy lệnh sau nếu cần xóa các volume không sử dụng có thể chứa hàng gigabyte dữ liệu bị lãng quên:
docker system prune -a --volumesChạy lệnh trên sẽ xóa các volume không sử dụng, nhưng một số có thể thuộc sở hữu của root hoặc người dùng khác. Hiểu về quyền sở hữu và quyền truy cập trong Linux có thể giúp quá trình này an toàn hơn.
Học IT










Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy