Nếu bạn đang tự hỏi làm sao để chạy một Docker image, thì bạn không đơn độc. Dù bạn vừa kéo một image từ Docker Hub hay tự xây dựng, việc chạy nó là bước then chốt giúp ứng dụng hoạt động.
Hướng dẫn này thân thiện với người mới bắt đầu về lệnh docker run và hơn thế nữa. Bạn sẽ học:
Docker image và container thực chất là gì.
Cách chạy một image với các tùy chọn khác nhau.
Và cách dừng, xóa, cũng như khắc phục sự cố container như dân chuyên.
Kết thúc bài, bạn sẽ tự tin khởi chạy container của riêng mình và hiểu rõ những gì diễn ra bên trong.
Hiểu về Docker Images và Containers
Trước khi đi vào ví dụ lệnh, hãy hiểu Docker image và container theo cách đơn giản.
Nếu bạn đã quen với các khái niệm này, cứ thoải mái bỏ qua và sang phần tiếp theo!
Docker image là gì?
Docker image là một bản thiết kế bất biến cho ứng dụng của bạn. Nó định nghĩa mọi thứ container cần: mã nguồn, thư viện, môi trường và cấu hình. Khi đã có image, bạn có thể dùng nó để khởi tạo một hoặc hàng trăm container. Mọi lần đều nhất quán.
Vậy image đến từ đâu? Dockerfile tạo ra chúng. Dockerfile là nơi bạn định nghĩa image nền tảng, cài đặt phụ thuộc gì và ứng dụng chạy thế nào.
Khi Dockerfile đã sẵn sàng, bạn chạy lệnh docker build. Lệnh này làm theo các bước trong tệp và biến chúng thành một image có thể tái sử dụng.
Docker container là gì?
Docker container là phiên bản đang chạy của một Docker image. Nó cho phép ứng dụng của bạn chạy trong môi trường biệt lập riêng, đảm bảo hành vi nhất quán bất kể hệ thống máy chủ.
Nó tuân theo cách tiếp cận “build một lần, chạy mọi nơi”, nên bạn không phải thiết lập môi trường thủ công mỗi lần.
Image và container khác nhau thế nào
Bảng sau so sánh song song giữa image và container:
Image
Container
Image là một gói tiêu chuẩn bao gồm tất cả tệp, binary, thư viện và cấu hình để chạy container.
Một phiên bản chạy (runtime instance) của image.
Image là bất biến. Nghĩa là nó không thay đổi trừ khi được build lại.
Container là có thể thay đổi. Bạn có thể chỉnh sửa trong lúc chạy, cài gói mới hoặc đổi tệp cấu hình.
Dockerfile (tập lệnh để build image) tạo ra image.
Image tạo ra container.
Máy tính của bạn lưu trữ các tệp image.
Container chạy trong bộ nhớ của bạn.
Nếu bạn hoàn toàn mới với containerization, khóa học Introduction to Docker của chúng tôi sẽ hướng dẫn bạn qua các khái niệm cốt lõi với ví dụ thực hành.
Lệnh docker run
Khi bạn chạy lệnh docker run, bạn đang yêu cầu Docker khởi tạo một container mới dựa trên một image.
Nói đơn giản, bạn đang khởi chạy một chương trình trong môi trường biệt lập. Chương trình đó có thể là bất kỳ thứ gì, từ web app đơn giản đến dịch vụ đầy đủ với nhiều tiến trình.
Cú pháp cơ bản
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
[OPTIONS] - Các cờ bổ sung để tùy chỉnh cách container chạy
IMAGE - Tên Docker image
[COMMAND] - (Tùy chọn) Ghi đè lệnh mặc định trong image.
[ARG...]- (Tùy chọn) Đối số.
Các cờ và tùy chọn thường dùng
-d: Chế độ tách (detached): chạy container ở nền
-p: Ánh xạ cổng: Để truy cập dịch vụ (như API hoặc web app) từ trình duyệt, bạn cần mở cổng. Ví dụ: -p 3000:3000 ánh xạ cổng 3000 trên máy của bạn tới cổng 3000 trong container.
--name: Docker gán tên mặc định cho container, nhưng bạn có thể dùng cờ này để đặt tên mới.
-v: Bạn dùng để tách dữ liệu khỏi container, đảm bảo dữ liệu vẫn còn ngay cả khi container bị dừng hoặc xóa.
--rm: Khi container dừng, cờ này sẽ tự động xóa nó.
-e: Dùng để truyền mật khẩu cơ sở dữ liệu hoặc API key mà không phải hardcode trong ứng dụng.
Chạy container tương tác vs tách nền
Docker chạy container theo hai cách: chế độ tương tác (-it) và chế độ tách nền (-d). Mỗi chế độ có tình huống sử dụng tùy mục tiêu của bạn.
-it: Chế độ tương tác: Nếu bạn muốn làm việc trực tiếp bên trong container qua terminal, hãy dùng cờ -it. Nó đưa container vào chế độ tương tác, cho phép bạn gõ lệnh, xem đầu ra và làm việc theo thời gian thực.
-i: Giữ ngỏ đầu vào để bạn có thể gõ lệnh vào container
-t: Cung cấp giao diện kiểu terminal bên trong container
-d: Chế độ tách nền: Chạy container ở nền, giải phóng terminal cho tác vụ khác.
Giờ bạn đã biết cú pháp lệnh docker run, phần này sẽ chỉ cho bạn cách tạo image tùy chỉnh và chạy chúng.
Sử dụng image từ Docker Hub
Docker Hub giống như thư viện trực tuyến cho image container. Bạn có thể lấy các image dựng sẵn hoặc tải lên của mình để chia sẻ. Nó hỗ trợ cả kho công khai lẫn riêng tư, nên bạn có thể chia sẻ mở với cộng đồng hoặc thiết lập kiểm soát truy cập cho đội nội bộ.
Chạy image tùy chỉnh
Để chạy một Docker image, trước tiên bạn cần build nó bằng Dockerfile. Sau đó, bạn có thể chạy cục bộ hoặc đẩy lên Docker Hub để chia sẻ.
Vậy, trước tiên hãy tạo Dockerfile. Đây là một ví dụ:
# Use official Python base image
FROM python:3.11-slim
# Set working directory in the container
WORKDIR /app
# Copy requirements file and install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy the rest of the app code
COPY . .
EXPOSE 5000
# Set default command
CMD ["python","app.py"]Được hỗ trợ bởi
Dockerfile trên có nghĩa là gì?
FROM python:3.11-slim: image nền tảng với phiên bản python 3.11
WORKDIR /app: Đặt /app làm thư mục làm việc bên trong container.
COPY requirements.txt . : chuyển mọi phụ thuộc từ máy cục bộ vào thư mục ứng dụng của container.
RUN pip install --no-cache-dir -r requirements.txt: cài đặt các phụ thuộc trong requirements.txt.
COPY . . : sao chép mã nguồn thư mục hiện tại (ứng dụng, tệp cấu hình, và khác) vào thư mục ứng dụng của container.
CMD ["python", "app.py"]: chạy app.py khi khởi động container từ image này.
Bước 1. Build Dockerfile
Hãy xem điều gì xảy ra khi bạn build Dockerfile này.
Một container mới từ image tùy chỉnh của bạn, my-python-app, được tạo.
Cổng 5000 trên máy bạn được ánh xạ tới cổng 5000 trong container (-p 5000:5000).
Lệnh CMD ["python", "app.py"] được chạy và khởi động ứng dụng.
Container chạy nền nhờ tùy chọn -d (chế độ tách).
Lúc này, bạn có thể truy cập http://localhost:5000 trong trình duyệt và sẽ thấy giống như sau, nghĩa là ứng dụng đã chạy:
Nếu bạn làm việc trong lĩnh vực machine learning, những Docker image hàng đầu cho ML và AI này có thể giúp tăng tốc thiết lập môi trường của bạn.
Chạy image với cấu hình
Với một số ứng dụng, bạn có thể cần chạy image với cấu hình cụ thể. Dưới đây là hai ví dụ phổ biến.
Lưu trữ dữ liệu bền vững
Container lưu dữ liệu tạm thời. Khi bạn xóa chúng, dữ liệu sẽ mất. Volume là cách để lưu dữ liệu bên ngoài container để dữ liệu vẫn tồn tại ngay cả khi container bị xóa hoặc khởi động lại.
Khi container đang chạy, bạn có thể xem, dừng và truy cập nó. Hãy xem cách thực hiện.
Xem các container hoạt động
Để liệt kê tất cả Docker container đang chạy trên hệ thống, chạy lệnh docker ps hoặc docker container ls. Lệnh này hiển thị ID container, image, lệnh, cổng, trạng thái và chi tiết khác.
Để đi xa hơn và xóa các container, volume, network và image không dùng đến, hãy xem hướng dẫn Docker prune.
Truy cập nhật ký và shell của container
docker logs - Lệnh docker logs truy xuất theo lô các log có tại thời điểm thực thi.
docker exec - docker exec cho phép bạn chạy một lệnh mới bên trong container đang chạy mà không cần dừng hay khởi động lại. Hãy nghĩ nó như mở một terminal mới bên trong container — để bạn có thể xem xét, chạy script, kiểm tra log hoặc gỡ lỗi.
docker attach - docker attach kết nối terminal của bạn trực tiếp tới tiến trình chính đang chạy của container. Bạn có thể xem đầu ra trực tiếp (log, prompt, v.v.) và thậm chí tương tác nếu tiến trình chấp nhận đầu vào.
Khắc phục sự cố thường gặp
Giải pháp đơn giản cho các vấn đề phổ biến. Dưới đây là một số lỗi thường gặp khi chạy Docker image và cách tiếp cận.
Lỗi 1: “Error response from daemon: pull access denied for alpine-python, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied.”
Ý nghĩa: Docker cố kéo một image, ở đây là image alpine-python từ Docker Hub, nhưng image không tồn tại hoặc là riêng tư và bạn chưa xác thực.
Cách khắc phục:
Kiểm tra lại tên image và tag trên Docker Hub.
Nếu là image riêng tư, chạy docker login để xác thực.
Đảm bảo image tồn tại nếu bạn kéo từ registry tùy chỉnh.
Lỗi 2: “No such image found: <image-name>:<tag>”
Ý nghĩa: Bạn cố chạy hoặc gán tag cho image cục bộ, nhưng image (hoặc tag chỉ định) không có trên hệ thống.
Chạy một Docker image là một trong những bước quan trọng và “mở khóa sức mạnh” khi dùng container, dù bạn đang bật một web server đơn giản hay triển khai ứng dụng phức tạp. Chỉ với vài lệnh như docker run, docker ps và docker stop, giờ bạn đã sẵn sàng khởi chạy, quản lý và khắc phục sự cố container một cách tự tin.
Nếu bạn muốn đi xa hơn, hãy thử tự build image bằng Dockerfile, khám phá các cờ nâng cao của docker run, hoặc học cách quản lý nhiều container với Docker Compose.
Xem các khóa học sau để tiếp tục hành trình Docker của bạn:
Intermediate Docker: Học quản lý image nâng cao, volumes và ứng dụng đa container.
Tôi có thể chạy nhiều container từ cùng một Docker image không?⌄
Có, bạn có thể chạy nhiều container từ cùng một image. Mỗi container là biệt lập và có thể có cài đặt, cổng và biến môi trường riêng.
Làm sao tôi truyền secrets hoặc API key an toàn vào Docker container?⌄
Dùng cờ -e để đặt biến môi trường hoặc dùng tệp .env và --env-file để truyền secrets khi chạy mà không phải hardcode.
Làm sao chạy Docker image ở chế độ nền?⌄
Dùng cờ -d với docker run để khởi động container ở chế độ tách nền, cho phép terminal rảnh cho lệnh khác.
Sự khác nhau giữa docker exec và docker attach là gì?⌄
docker exec mở một phiên shell mới bên trong container, trong khi docker attach kết nối tới tiến trình chính của container và luồng đầu ra trực tiếp của nó.
Tại sao tôi nhận 'pull access denied' khi chạy một image?⌄
Điều này thường có nghĩa image là riêng tư hoặc bị gõ sai. Hãy kiểm tra tên, tag và đảm bảo bạn đã đăng nhập Docker Hub với docker login.
Làm sao tôi lưu dữ liệu sau khi container dừng?⌄
Dùng cờ -v để gắn volume, đảm bảo dữ liệu được lưu bên ngoài container và vẫn còn ngay cả sau khi container bị xóa.
Cách tốt nhất để chạy container phục vụ phát triển là gì?⌄
Dùng các cờ -it cho chế độ tương tác, kết hợp gắn volume và biến môi trường để mô phỏng môi trường phát triển cục bộ.
Làm sao tôi biết cổng nào đang xung đột trên máy?⌄
Dùng lsof -i :<port> để xác định tiến trình nào đang dùng một cổng cụ thể, sau đó dừng nó hoặc dùng cổng host khác cho container.
Làm sao tôi xem log từ một Docker container đang chạy?⌄
Dùng lệnh docker logs <container_id> để truy xuất và xem log từ luồng tiêu chuẩn và lỗi tiêu chuẩn của container.
Srujana là một cây bút công nghệ tự do với bằng Cử nhân Khoa học Máy tính. Việc viết về nhiều chủ đề như khoa học dữ liệu, điện toán đám mây, phát triển, lập trình, bảo mật và nhiều lĩnh vực khác đến với cô một cách tự nhiên. Cô yêu thích văn học kinh điển và khám phá những điểm đến mới.
Tìm hiểu về Docker và khám phá tầm quan trọng của nó trong bộ công cụ của chuyên gia dữ liệu. Tìm hiểu về Docker container, Docker image và nhiều nội dung khác.
Nếu bạn đang tự hỏi làm sao để chạy một Docker image, thì bạn không đơn độc. Dù bạn vừa kéo một image từ Docker Hub hay tự xây dựng, việc chạy nó là bước then chốt giúp ứng dụng hoạt động.
Hướng dẫn này thân thiện với người mới bắt đầu về lệnh
docker runvà hơn thế nữa. Bạn sẽ học:Kết thúc bài, bạn sẽ tự tin khởi chạy container của riêng mình và hiểu rõ những gì diễn ra bên trong.
Hiểu về Docker Images và Containers
Trước khi đi vào ví dụ lệnh, hãy hiểu Docker image và container theo cách đơn giản.
Nếu bạn đã quen với các khái niệm này, cứ thoải mái bỏ qua và sang phần tiếp theo!
Docker image là gì?
Docker image là một bản thiết kế bất biến cho ứng dụng của bạn. Nó định nghĩa mọi thứ container cần: mã nguồn, thư viện, môi trường và cấu hình. Khi đã có image, bạn có thể dùng nó để khởi tạo một hoặc hàng trăm container. Mọi lần đều nhất quán.
Vậy image đến từ đâu? Dockerfile tạo ra chúng. Dockerfile là nơi bạn định nghĩa image nền tảng, cài đặt phụ thuộc gì và ứng dụng chạy thế nào.
Khi Dockerfile đã sẵn sàng, bạn chạy lệnh
docker build. Lệnh này làm theo các bước trong tệp và biến chúng thành một image có thể tái sử dụng.Docker container là gì?
Docker container là phiên bản đang chạy của một Docker image. Nó cho phép ứng dụng của bạn chạy trong môi trường biệt lập riêng, đảm bảo hành vi nhất quán bất kể hệ thống máy chủ.
Nó tuân theo cách tiếp cận “build một lần, chạy mọi nơi”, nên bạn không phải thiết lập môi trường thủ công mỗi lần.
Image và container khác nhau thế nào
Bảng sau so sánh song song giữa image và container:
Image
Container
Image là một gói tiêu chuẩn bao gồm tất cả tệp, binary, thư viện và cấu hình để chạy container.
Một phiên bản chạy (runtime instance) của image.
Image là bất biến. Nghĩa là nó không thay đổi trừ khi được build lại.
Container là có thể thay đổi. Bạn có thể chỉnh sửa trong lúc chạy, cài gói mới hoặc đổi tệp cấu hình.
Dockerfile (tập lệnh để build image) tạo ra image.
Image tạo ra container.
Máy tính của bạn lưu trữ các tệp image.
Container chạy trong bộ nhớ của bạn.
Nếu bạn hoàn toàn mới với containerization, khóa học Introduction to Docker của chúng tôi sẽ hướng dẫn bạn qua các khái niệm cốt lõi với ví dụ thực hành.
Lệnh docker run
Khi bạn chạy lệnh
docker run, bạn đang yêu cầu Docker khởi tạo một container mới dựa trên một image.Nói đơn giản, bạn đang khởi chạy một chương trình trong môi trường biệt lập. Chương trình đó có thể là bất kỳ thứ gì, từ web app đơn giản đến dịch vụ đầy đủ với nhiều tiến trình.
Cú pháp cơ bản
docker run [OPTIONS] IMAGE [COMMAND] [ARG...][OPTIONS]- Các cờ bổ sung để tùy chỉnh cách container chạyIMAGE- Tên Docker image[COMMAND]- (Tùy chọn) Ghi đè lệnh mặc định trong image.[ARG...]- (Tùy chọn) Đối số.Các cờ và tùy chọn thường dùng
-d: Chế độ tách (detached): chạy container ở nền-p: Ánh xạ cổng: Để truy cập dịch vụ (như API hoặc web app) từ trình duyệt, bạn cần mở cổng. Ví dụ:-p 3000:3000ánh xạ cổng 3000 trên máy của bạn tới cổng 3000 trong container.--name: Docker gán tên mặc định cho container, nhưng bạn có thể dùng cờ này để đặt tên mới.-v: Bạn dùng để tách dữ liệu khỏi container, đảm bảo dữ liệu vẫn còn ngay cả khi container bị dừng hoặc xóa.--rm: Khi container dừng, cờ này sẽ tự động xóa nó.-e: Dùng để truyền mật khẩu cơ sở dữ liệu hoặc API key mà không phải hardcode trong ứng dụng.Chạy container tương tác vs tách nền
Docker chạy container theo hai cách: chế độ tương tác (
-it) và chế độ tách nền (-d). Mỗi chế độ có tình huống sử dụng tùy mục tiêu của bạn.-it: Chế độ tương tác: Nếu bạn muốn làm việc trực tiếp bên trong container qua terminal, hãy dùng cờ-it. Nó đưa container vào chế độ tương tác, cho phép bạn gõ lệnh, xem đầu ra và làm việc theo thời gian thực.-i: Giữ ngỏ đầu vào để bạn có thể gõ lệnh vào container-t: Cung cấp giao diện kiểu terminal bên trong container-d: Chế độ tách nền: Chạy container ở nền, giải phóng terminal cho tác vụ khác.Giữ các lệnh chính và thực hành tốt nhất trong tầm tay với Docker for Data Science Cheat Sheet.
Kéo và chạy Docker Image
Giờ bạn đã biết cú pháp lệnh
docker run, phần này sẽ chỉ cho bạn cách tạo image tùy chỉnh và chạy chúng.Sử dụng image từ Docker Hub
Docker Hub giống như thư viện trực tuyến cho image container. Bạn có thể lấy các image dựng sẵn hoặc tải lên của mình để chia sẻ. Nó hỗ trợ cả kho công khai lẫn riêng tư, nên bạn có thể chia sẻ mở với cộng đồng hoặc thiết lập kiểm soát truy cập cho đội nội bộ.
Chạy image tùy chỉnh
Để chạy một Docker image, trước tiên bạn cần build nó bằng Dockerfile. Sau đó, bạn có thể chạy cục bộ hoặc đẩy lên Docker Hub để chia sẻ.
Vậy, trước tiên hãy tạo Dockerfile. Đây là một ví dụ:
Dockerfile trên có nghĩa là gì?
FROM python:3.11-slim: image nền tảng với phiên bản python 3.11WORKDIR /app: Đặt/applàm thư mục làm việc bên trong container.COPY requirements.txt .: chuyển mọi phụ thuộc từ máy cục bộ vào thư mục ứng dụng của container.RUN pip install --no-cache-dir -r requirements.txt: cài đặt các phụ thuộc trong requirements.txt.COPY . .: sao chép mã nguồn thư mục hiện tại (ứng dụng, tệp cấu hình, và khác) vào thư mục ứng dụng của container.Bước 1. Build Dockerfile
Hãy xem điều gì xảy ra khi bạn build Dockerfile này.
Lưu ý: Để lệnh này chạy được, trước hết bạn cần cài đặt Docker trên hệ thống; hướng dẫn này sẽ giúp bạn.
Những gì diễn ra phía sau khi bạn chạy lệnh build:
/app.requirements.txtđược sao chép vào container.pip install./app.my-python-app.Bước 2: Chạy Dockerfile
Khi image đã được build, bạn có thể chạy nó bằng:
Khi bạn chạy lệnh này, sẽ xảy ra:
my-python-app, được tạo.-p 5000:5000).CMD ["python", "app.py"] được chạy và khởi động ứng dụng.-d(chế độ tách).Lúc này, bạn có thể truy cập
http://localhost:5000trong trình duyệt và sẽ thấy giống như sau, nghĩa là ứng dụng đã chạy:Nếu bạn làm việc trong lĩnh vực machine learning, những Docker image hàng đầu cho ML và AI này có thể giúp tăng tốc thiết lập môi trường của bạn.
Chạy image với cấu hình
Với một số ứng dụng, bạn có thể cần chạy image với cấu hình cụ thể. Dưới đây là hai ví dụ phổ biến.
Lưu trữ dữ liệu bền vững
Container lưu dữ liệu tạm thời. Khi bạn xóa chúng, dữ liệu sẽ mất. Volume là cách để lưu dữ liệu bên ngoài container để dữ liệu vẫn tồn tại ngay cả khi container bị xóa hoặc khởi động lại.
Để gắn volume, bạn cần chạy lệnh như sau:
Dữ liệu ghi vào
/app/datasẽ được lưu trong volume ngay cả sau khi container bị xóa.Truyền biến môi trường
Biến môi trường truyền cài đặt cấu hình cho Docker container tại thời điểm chạy. Điều này giúp tùy biến container mà không cần sửa Docker image.
Bạn có hai cách để truyền biến môi trường:
-e. Ví dụ lệnh:.envvới tất cả biến môi trường và truyền vào lệnh. Ví dụ:Ví dụ tệp
.env:Quản lý Container đang chạy
Khi container đang chạy, bạn có thể xem, dừng và truy cập nó. Hãy xem cách thực hiện.
Xem các container hoạt động
Để liệt kê tất cả Docker container đang chạy trên hệ thống, chạy lệnh
docker pshoặcdocker container ls. Lệnh này hiển thị ID container, image, lệnh, cổng, trạng thái và chi tiết khác.Để bao gồm tất cả container — không chỉ các container đang chạy — như những cái đã thoát hoặc được tạo nhưng chưa khởi động, dùng cờ
-a:Để chỉ xem container được tạo gần đây nhất, dùng cờ
-l(latest):Nếu bạn muốn xem tất cả container được sắp theo thời gian tạo, với cái mới nhất liệt kê đầu tiên, chạy:
Dừng và xóa container
Để dừng một container cụ thể đang chạy, dùng lệnh
docker stopkèm ID hoặc tên container:Để dừng tất cả container đang chạy, dùng:
$(docker ps -q)trả về danh sách ID của tất cả container đang chạy.Khi container đã dừng, bạn có thể xóa nó bằng:
Để xóa tất cả container đã dừng, chạy:
Để đi xa hơn và xóa các container, volume, network và image không dùng đến, hãy xem hướng dẫn Docker prune.
Truy cập nhật ký và shell của container
docker logstruy xuất theo lô các log có tại thời điểm thực thi.docker execcho phép bạn chạy một lệnh mới bên trong container đang chạy mà không cần dừng hay khởi động lại. Hãy nghĩ nó như mở một terminal mới bên trong container — để bạn có thể xem xét, chạy script, kiểm tra log hoặc gỡ lỗi.docker attachkết nối terminal của bạn trực tiếp tới tiến trình chính đang chạy của container. Bạn có thể xem đầu ra trực tiếp (log, prompt, v.v.) và thậm chí tương tác nếu tiến trình chấp nhận đầu vào.Khắc phục sự cố thường gặp
Giải pháp đơn giản cho các vấn đề phổ biến. Dưới đây là một số lỗi thường gặp khi chạy Docker image và cách tiếp cận.
Lỗi 1: “Error response from daemon: pull access denied for alpine-python, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied.”
alpine-pythontừ Docker Hub, nhưng image không tồn tại hoặc là riêng tư và bạn chưa xác thực.docker loginđể xác thực.Lỗi 2: “No such image found: <image-name>:<tag>”
docker imagesđể kiểm tra các image sẵn có.Lỗi 3: “manifest for <image>:<tag> not found: manifest unknown: The named manifest is not known to the registry.”
docker pull <image>:<tag>để lấy một phiên bản hợp lệ.Dockerfileđúng và build image bằng:Xung đột cổng và lỗi bind
Xung đột cổng xảy ra khi nhiều container hoặc container và ứng dụng khác cố truy cập cùng một cổng.
Kết luận
Chạy một Docker image là một trong những bước quan trọng và “mở khóa sức mạnh” khi dùng container, dù bạn đang bật một web server đơn giản hay triển khai ứng dụng phức tạp. Chỉ với vài lệnh như
docker run,docker psvàdocker stop, giờ bạn đã sẵn sàng khởi chạy, quản lý và khắc phục sự cố container một cách tự tin.Nếu bạn muốn đi xa hơn, hãy thử tự build image bằng Dockerfile, khám phá các cờ nâng cao của
docker run, hoặc học cách quản lý nhiều container với Docker Compose.Xem các khóa học sau để tiếp tục hành trình Docker của bạn: