Container là gì?
Là gói ứng dụng + toàn bộ dependencies, config, môi trường cần thiết để chạy.
Image là gì trong Docker?
Là gói đóng sẵn (app, libs, config), gồm nhiều layers. Là artifact tĩnh, chưa chạy.
Container khác Image ở điểm nào?
Container = Image đang chạy trong môi trường cô lập.
Docker Hub là gì?
Public repository lớn nhất dùng để chia sẻ Docker images.
Tại sao Alpine Linux thường dùng làm base image?
Vì nhẹ, image nhỏ, tải nhanh, triển khai nhanh.
docker pull <image> làm gì?</image>
Tải image từ repository về local.
docker run -p 5000:3000 appA nghĩa là gì?
Gắn cổng 3000 trong container với cổng 5000 của host.
docker ps -a dùng để làm gì?
Liệt kê tất cả container, kể cả container đã dừng.
Lệnh docker login dùng trong trường hợp nào?
Khi muốn đăng nhập vào private repo (vd AWS ECR, Docker Hub).
Docker khác Virtual Machine ở điểm nào chính?
Docker chia sẻ kernel host → nhẹ và khởi động nhanh; VM có kernel riêng → nặng và chậm hơn.
docker compose -f app.yml up làm gì?
Chạy các container được định nghĩa trong file Docker Compose.
docker network ls hiển thị gì?
Danh sách các network Docker đang tồn tại.
Lệnh nào dùng để xem log container?
docker logs <container_id> hoặc docker logs <container_name></container_name></container_id>
Lệnh mở terminal bash bên trong container?
docker exec -it <container_name> /bin/bash</container_name>
Docker tạo network kiểu gì khi có nhiều container?
Docker tạo virtual network riêng, container trong đó có thể gọi nhau bằng tên.
Làm sao để Mongo Express biết container MongoDB nào để kết nối?
Biến môi trường ME_CONFIG_MONGODB_SERVER phải trùng với –name của MongoDB container.
Lệnh tạo network mới?
docker network create <network_name></network_name>
Docker Compose có tác dụng chính là gì?
Quản lý, chạy nhiều container cùng lúc, lưu config trong 1 file .yml.
Lệnh build image từ Dockerfile?
docker build -t <image_name>:<tag> .</tag></image_name>
RUN và COPY khác nhau thế nào?
RUN chạy lệnh trong image; COPY chỉ sao chép file từ host vào image.
ADD khác gì COPY?
ADD có thể giải nén .tar hoặc tải file từ URL; COPY thì không.
CMD và ENTRYPOINT khác nhau thế nào?
CMD có thể bị ghi đè hoàn toàn; ENTRYPOINT thì không, chỉ append thêm tham số.
ENTRYPOINT [“sleep”]
CMD [“5”]
docker run ubuntu-sleeper → chạy sleep 5
docker run ubuntu-sleeper 10 → chạy sleep 10
Cách ghi đè ENTRYPOINT khi run container?
Dùng option –entrypoint.
Dữ liệu lưu trong filesystem của container có tồn tại khi container bị xóa không?
Không — nếu không dùng volume/bind mount, dữ liệu mất khi container bị xóa.