Docker là một tập hợp các nền tảng mở cung cấp ảo hóa cấp hệ điều hành để phát triển, vận chuyển và chạy các ứng dụng. Trong Docker, các ứng dụng được phân phối dưới dạng các gói đơn vị chuẩn hóa được gọi là container. Mỗi container được cô lập với nhau, bao gồm các thư viện và tệp cấu hình, nhưng mỗi container có thể giao tiếp thông qua các kênh mạng được xác định rõ ràng.
Hiện tại, Docker đã trở thành một tiêu chuẩn cho phát triển phần mềm và DevOps. Hàng triệu nhà phát triển sử dụng nó để xây dựng, chia sẻ và chạy các ứng dụng hàng ngày tại nơi làm việc. Nó được sử dụng trong vòng đời phát triển ứng dụng, từ bản thân quá trình phát triển, đến thử nghiệm và sản xuất. Với Docker, ứng dụng trở nên linh hoạt và di động hơn. Các ứng dụng có thể chạy dễ dàng ở bất kỳ đâu trên các hệ điều hành khác nhau, nhưng bản thân ứng dụng vẫn giống nhau từ thư viện đến tệp cấu hình.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Docker Engine trên Debian 12 mới nhất. Bạn cũng sẽ xem qua cách quản lý dịch vụ Docker thông qua systemctl và tìm hiểu cách sử dụng Docker cơ bản để quản lý hình ảnh, vùng chứa và ổ đĩa.
Máy Debian 12 - Bạn có thể sử dụng máy tính để bàn hoặc máy chủ Debian.
Người dùng không phải root có quyền quản trị viên sudo.
Trước tiên, hãy cập nhật và làm mới kho lưu trữ Debian để có thông tin gói mới nhất. Sau đó, cài đặt các gói cơ bản ca-certificates, curl và gnupg vào hệ thống Debian của bạn. Khi được nhắc, hãy nhập y và nhấn ENTER để xác nhận.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22606%22%20height=%22218%22%3E%3C/svg%3E
Bây giờ hãy chạy các lệnh sau để thiết lập khóa GPG cho kho lưu trữ Docker, khóa này sẽ được lưu trữ tại /etc/apt/keyrings/ thư mục.
Sau đó, thực hiện lệnh bên dưới để thêm kho lưu trữ Docker cho hệ thống Debian. Tại thời điểm viết bài này, Docker cung cấp kho lưu trữ cho cả Debian 11 và 12.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22157%22%3E%3C/svg%3E
Tiếp theo, hãy làm mới lại kho lưu trữ Debian và cài đặt Docker Engine thông qua lệnh apt bên dưới. Lệnh này cũng sẽ cài đặt containerd, là công cụ chứa mặc định, plugin Docker buildx làm plugin xây dựng mặc định với khả năng BuildKit và Docker compose làm plugin.
Nhập y khi được nhắc và nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Sau khi cài đặt Docker, hãy chạy lệnh sau để kiểm tra phiên bản. Trong quá trình viết bài này, Docker v24.0.4 được cài đặt trên Debian 12.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22566%22%20height=%22619%22%3E%3C/svg%3E
Trên Debian, các dịch vụ docker và containerd được tự động bật. Thực hiện lệnh sau để xác minh cả hai dịch vụ docker và containerd.
Nếu được bật, bạn sẽ nhận được đầu ra enabled trên thiết bị đầu cuối của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22517%22%20height=%22126%22%3E%3C/svg%3E
Bây giờ hãy thực hiện lệnh bên dưới để kiểm tra trạng thái dịch vụ của docker và containerd.
Nếu dịch vụ đang chạy, thông báo active (running) sẽ được hiển thị trên thiết bị đầu cuối của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22241%22%3E%3C/svg%3E
Tiếp theo, bạn có thể chạy lệnh bên dưới để khởi động dịch vụ docker và containerd.
Nếu cần dừng Docker, hãy thực hiện các lệnh sau để dừng Docker và containerd dịch vụ.
Cuối cùng, khởi động lại bằng lệnh sau nếu thực hiện thay đổi cấu hình Docker.
Thực hiện lệnh usermod bên dưới để thêm người dùng của bạn vào nhóm docker và đăng nhập với tư cách là người dùng của bạn qua su.
Bây giờ hãy nhập lệnh sau để chạy container hello-world qua người dùng.
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy thông báo Hello World từ vùng chứa Docker như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22749%22%20height=%22635%22%3E%3C/svg%3E
Cuối cùng, thực hiện lệnh docker bên dưới có thể xác minh danh sách container.
Bạn sẽ thấy một container có trạng thái Đã thoát. Tên của container hello-world mặc định là ngẫu nhiên, trong trường hợp này, tên là optmistic_edison.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2296%22%3E%3C/svg%3E
Trong phần sau, bạn sẽ tìm hiểu cách tải xuống hình ảnh Docker, kiểm tra hình ảnh đã tải xuống và xóa hình ảnh.
Để tải xuống hình ảnh Docker từ Docker Registry, hãy chạy lệnh docker pull bên dưới. Lệnh sau sẽ tải xuống hình ảnh nginx với thẻ mặc định là latest.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E
Để chỉ định phiên bản hình ảnh, hãy thêm phiên bản trình tạo hình ảnh sau hình ảnh mục tiêu như sau đây.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22744%22%20height=%22305%22%3E%3C/svg%3E
Bây giờ hãy xác minh các hình ảnh có sẵn trên máy chủ Docker của bạn thông qua lệnh bên dưới.
Hình ảnh Docker tải xuống phải có thông tin chi tiết như thẻ hình ảnh và kích thước.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22576%22%20height=%22167%22%3E%3C/svg%3E
Cuối cùng, sử dụng tham số rmi để xóa hình ảnh Docker khỏi máy.
Trong phần này, bạn sẽ học cách tạo và chạy container, kiểm tra container, cũng như khởi động và dừng container thông qua dòng lệnh docker.
Để chạy container, hãy sử dụng tham số run trong lệnh docker như thế này.
Lệnh sau sẽ chạy container web bằng hình ảnh nginx:alpine. Ngoài ra, container web sẽ hiển thị cổng 80 trong container và cổng 8080 trong máy chủ Docker. Ngoài ra, tham số -it sẽ tách bạn khỏi vùng chứa và tham số -d sẽ chạy web vùng chứa ở chế độ nền.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22110%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh docker ps bên dưới để xác minh danh sách các vùng chứa trên Docker của bạn máy.
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy web container đang chạy và cổng 8080 được hiển thị trên máy chủ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2281%22%3E%3C/svg%3E
Trong khi lệnh docker run sẽ tạo và khởi động container, bạn cũng có thể khởi động và dừng container thông qua lệnh docker lệnh.
Chạy lệnh docker stop bên dưới để dừng web của container.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22165%22%3E%3C/svg%3E
Để khởi động lại web của container, hãy sử dụng lệnh docker start sau lệnh.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22104%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh docker rm bên dưới để xóa vùng chứa. Tham số -f được sử dụng để buộc xóa vùng chứa, ngay cả khi vùng chứa đích đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22100%22%3E%3C/svg%3E
Để kiểm tra nhật ký của container, hãy sử dụng tham số logs trong lệnh docker như thế này. Thao tác này sẽ hiển thị nhật ký kể từ khi vùng chứa được tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22319%22%3E%3C/svg%3E
Bây giờ bạn cũng có thể thêm tùy chọn --tail N để chỉ lấy các nhật ký mới nhất như thế này. Trong trường hợp này, tùy chọn --tail 15 sẽ chỉ hiển thị 15 dòng nhật ký cuối cùng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22319%22%3E%3C/svg%3E
Để tạo một volume mới, hãy chạy lệnh docker volume bên dưới. Trong bản demo này, bạn sẽ tạo một Docker volume myvol mới.
Xác minh các volume khả dụng trên máy chủ Docker của bạn bằng tùy chọn ls như thế này. Bạn sẽ thấy ổ đĩa myvol được tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22448%22%20height=%22175%22%3E%3C/svg%3E
Theo mặc định, Docker sẽ tạo ổ đĩa bằng trình điều khiển cục bộ, sử dụng thư mục cục bộ làm kho lưu trữ dữ liệu. Và thư mục lưu trữ dữ liệu mặc định nằm tại thư mục /var/lib/docker/volume. Chạy tùy chọn kiểm tra như thế này để kiểm tra thông tin chi tiết về ổ đĩa myvol.
Bạn sẽ thấy ổ đĩa myvol với trình điều khiển mặc định là local và ổ đĩa lưu trữ dữ liệu nằm tại thư mục /var/lib/docker/volumes/myvol/_data. Phần Mountpoint là thư mục lưu trữ dữ liệu cục bộ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22293%22%3E%3C/svg%3E
Tiếp theo, bạn có thể sử dụng Docker volume trên container của mình thông qua tùy chọn -v, tùy chọn này kết hợp tất cả các tùy chọn trong một trường và tùy chọn --mount có cú pháp rõ ràng hơn, chi tiết hơn và tách biệt hơn.
Chạy lệnh docker run sau để tạo một container web2 mới với volume myvol thông qua tùy chọn --mount. Sau đó, kiểm tra web container thông qua lệnh docker inspect.
trong phần Mounts, bạn sẽ thấy web container đang sử dụng ổ đĩa myvol đến thư mục đích /app bên trong container.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22603%22%20height=%22263%22%3E%3C/svg%3E
Để sử dụng tùy chọn -v, lệnh docker run sẽ như sau. Tùy chọn -v sử dụng một trường duy nhất để gắn ổ đĩa myvol2 vào thư mục đích /app.
Cuối cùng, hãy chạy lệnh docker volume bên dưới với tham số rm để xóa ổ đĩa Docker
Để khám phá thêm, bạn có thể bắt đầu xây dựng hình ảnh Docker cho ứng dụng của mình thông qua Dockerfile.
Hiện tại, Docker đã trở thành một tiêu chuẩn cho phát triển phần mềm và DevOps. Hàng triệu nhà phát triển sử dụng nó để xây dựng, chia sẻ và chạy các ứng dụng hàng ngày tại nơi làm việc. Nó được sử dụng trong vòng đời phát triển ứng dụng, từ bản thân quá trình phát triển, đến thử nghiệm và sản xuất. Với Docker, ứng dụng trở nên linh hoạt và di động hơn. Các ứng dụng có thể chạy dễ dàng ở bất kỳ đâu trên các hệ điều hành khác nhau, nhưng bản thân ứng dụng vẫn giống nhau từ thư viện đến tệp cấu hình.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Docker Engine trên Debian 12 mới nhất. Bạn cũng sẽ xem qua cách quản lý dịch vụ Docker thông qua systemctl và tìm hiểu cách sử dụng Docker cơ bản để quản lý hình ảnh, vùng chứa và ổ đĩa.
Điều kiện tiên quyết
Đảm bảo bạn có các yêu cầu sau trước khi thực hiện hướng dẫn này:Máy Debian 12 - Bạn có thể sử dụng máy tính để bàn hoặc máy chủ Debian.
Người dùng không phải root có quyền quản trị viên sudo.
Cài đặt Docker Engine
Để có phiên bản mới nhất của Docker Engine, bạn phải cài đặt thông qua kho lưu trữ Docker chính thức. Trước tiên, bạn phải thêm kho lưu trữ Docker và khóa GPG, sau đó cài đặt Docker Engine.Trước tiên, hãy cập nhật và làm mới kho lưu trữ Debian để có thông tin gói mới nhất. Sau đó, cài đặt các gói cơ bản ca-certificates, curl và gnupg vào hệ thống Debian của bạn. Khi được nhắc, hãy nhập y và nhấn ENTER để xác nhận.
Mã:
sudo apt update
sudo apt install ca-certificates curl gnupg
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22606%22%20height=%22218%22%3E%3C/svg%3E
Bây giờ hãy chạy các lệnh sau để thiết lập khóa GPG cho kho lưu trữ Docker, khóa này sẽ được lưu trữ tại /etc/apt/keyrings/ thư mục.
Mã:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Mã:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22157%22%3E%3C/svg%3E
Tiếp theo, hãy làm mới lại kho lưu trữ Debian và cài đặt Docker Engine thông qua lệnh apt bên dưới. Lệnh này cũng sẽ cài đặt containerd, là công cụ chứa mặc định, plugin Docker buildx làm plugin xây dựng mặc định với khả năng BuildKit và Docker compose làm plugin.
Mã:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Sau khi cài đặt Docker, hãy chạy lệnh sau để kiểm tra phiên bản. Trong quá trình viết bài này, Docker v24.0.4 được cài đặt trên Debian 12.
Mã:
docker version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22566%22%20height=%22619%22%3E%3C/svg%3E
Quản lý dịch vụ Docker
Docker Engine yêu cầu containerd, được sử dụng làm công cụ chứa mặc định. Cả containerd và docker đều phải chạy trên máy chủ Docker của bạn. Bây giờ, bạn sẽ học cách quản lý các dịch vụ Docker và containerd thông qua tiện ích systemctl của systemd.Trên Debian, các dịch vụ docker và containerd được tự động bật. Thực hiện lệnh sau để xác minh cả hai dịch vụ docker và containerd.
Mã:
sudo systemctl is-enabled docker
sudo systemctl is-enabled containerd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22517%22%20height=%22126%22%3E%3C/svg%3E
Bây giờ hãy thực hiện lệnh bên dưới để kiểm tra trạng thái dịch vụ của docker và containerd.
Mã:
sudo systemctl status docker
sudo systemctl status containerd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22241%22%3E%3C/svg%3E
Tiếp theo, bạn có thể chạy lệnh bên dưới để khởi động dịch vụ docker và containerd.
Mã:
sudo systemctl start docker
sudo systemctl start containerd
Mã:
sudo systemctl stop docker
sudo systemctl stop containerd
Mã:
sudo systemctl restart docker
sudo systemctl restart containerd
Cấu hình Docker cho người dùng không phải root
Theo mặc định, chỉ root mới có thể chạy container bằng Docker Engine. Để cho phép người dùng không phải root, bạn phải thêm người dùng vào nhóm docker. Để thêm người dùng của bạn vào nhóm docker, hãy hoàn thành các phần này, sau đó chạy container hello-world.Thực hiện lệnh usermod bên dưới để thêm người dùng của bạn vào nhóm docker và đăng nhập với tư cách là người dùng của bạn qua su.
Mã:
sudo usermod -aG docker username
su - username
Mã:
docker run hello-world
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22749%22%20height=%22635%22%3E%3C/svg%3E
Cuối cùng, thực hiện lệnh docker bên dưới có thể xác minh danh sách container.
Mã:
docker ps -a
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2296%22%3E%3C/svg%3E
Chạy và quản lý container bằng Docker
Lúc này, Docker Engine đang chạy và bạn có thể bắt đầu tạo container thông qua dòng lệnh docker. Trong phần sau, bạn sẽ tìm hiểu cách sử dụng Docker cơ bản để:- Quản lý hình ảnh Docker
- Tạo và quản lý container
- Kiểm tra nhật ký container
- Tạo và quản lý khối lượng Docker
Quản lý hình ảnh Docker
Hình ảnh Docker là toàn bộ ứng dụng của bạn được đóng gói trong một hình ảnh duy nhất và dễ dàng phân phối thông qua sổ đăng ký hình ảnh. Sổ đăng ký hình ảnh mặc định cho Docker là https://hub.docker.com/.Trong phần sau, bạn sẽ tìm hiểu cách tải xuống hình ảnh Docker, kiểm tra hình ảnh đã tải xuống và xóa hình ảnh.
Để tải xuống hình ảnh Docker từ Docker Registry, hãy chạy lệnh docker pull bên dưới. Lệnh sau sẽ tải xuống hình ảnh nginx với thẻ mặc định là latest.
Mã:
docker pull nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E
Để chỉ định phiên bản hình ảnh, hãy thêm phiên bản trình tạo hình ảnh sau hình ảnh mục tiêu như sau đây.
Mã:
docker pull nginx:alpine
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22744%22%20height=%22305%22%3E%3C/svg%3E
Bây giờ hãy xác minh các hình ảnh có sẵn trên máy chủ Docker của bạn thông qua lệnh bên dưới.
Mã:
docker images
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22576%22%20height=%22167%22%3E%3C/svg%3E
Cuối cùng, sử dụng tham số rmi để xóa hình ảnh Docker khỏi máy.
Mã:
docker rmi imagename
Quản lý Container
Container là nơi ứng dụng của bạn đang chạy và dựa trên hình ảnh Docker của bạn. Container có thể gắn một thư mục hoặc ổ đĩa cụ thể cho dữ liệu liên tục và hiển thị một cổng cụ thể trong máy chủ Docker cho ứng dụng.Trong phần này, bạn sẽ học cách tạo và chạy container, kiểm tra container, cũng như khởi động và dừng container thông qua dòng lệnh docker.
Để chạy container, hãy sử dụng tham số run trong lệnh docker như thế này.
Mã:
docker run -it -d -p 8080:80 --name web nginx:alpine
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22110%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh docker ps bên dưới để xác minh danh sách các vùng chứa trên Docker của bạn máy.
Mã:
docker ps
docker ps -a
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2281%22%3E%3C/svg%3E
Trong khi lệnh docker run sẽ tạo và khởi động container, bạn cũng có thể khởi động và dừng container thông qua lệnh docker lệnh.
Chạy lệnh docker stop bên dưới để dừng web của container.
Mã:
docker container stop web
docker ps -a
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22165%22%3E%3C/svg%3E
Để khởi động lại web của container, hãy sử dụng lệnh docker start sau lệnh.
Mã:
docker container start web
docker ps
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22104%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh docker rm bên dưới để xóa vùng chứa. Tham số -f được sử dụng để buộc xóa vùng chứa, ngay cả khi vùng chứa đích đang chạy.
Mã:
docker container rm optimistic_edison
docker container rm optimistic_edison -f
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22100%22%3E%3C/svg%3E
Kiểm tra Nhật ký vùng chứa
Kiểm tra nhật ký trong Docker rất quan trọng vì bạn sẽ luôn cần điều này để gỡ lỗi ứng dụng chứa trong container của bạn. Bây giờ, bạn sẽ học cách kiểm tra nhật ký container trong Docker.Để kiểm tra nhật ký của container, hãy sử dụng tham số logs trong lệnh docker như thế này. Thao tác này sẽ hiển thị nhật ký kể từ khi vùng chứa được tạo.
Mã:
docker logs web
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22319%22%3E%3C/svg%3E
Bây giờ bạn cũng có thể thêm tùy chọn --tail N để chỉ lấy các nhật ký mới nhất như thế này. Trong trường hợp này, tùy chọn --tail 15 sẽ chỉ hiển thị 15 dòng nhật ký cuối cùng.
Mã:
docker logs --tail 15 web
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22319%22%3E%3C/svg%3E
Quản lý Docker Volume
Docker volume là nơi ứng dụng của bạn có thể sử dụng lưu trữ liên tục. Bạn có thể thay đổi container của mình và vẫn sử dụng cùng một volume hoặc dữ liệu cho ứng dụng của mình. Phần sau đây sẽ cho bạn thấy cách sử dụng cơ bản của Docker volume, từ việc tạo volume đến kiểm tra và sử dụng volume trong container.Để tạo một volume mới, hãy chạy lệnh docker volume bên dưới. Trong bản demo này, bạn sẽ tạo một Docker volume myvol mới.
Mã:
docker volume create myvol
Mã:
docker volume ls
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22448%22%20height=%22175%22%3E%3C/svg%3E
Theo mặc định, Docker sẽ tạo ổ đĩa bằng trình điều khiển cục bộ, sử dụng thư mục cục bộ làm kho lưu trữ dữ liệu. Và thư mục lưu trữ dữ liệu mặc định nằm tại thư mục /var/lib/docker/volume. Chạy tùy chọn kiểm tra như thế này để kiểm tra thông tin chi tiết về ổ đĩa myvol.
Mã:
docker volume inspect myvol
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22293%22%3E%3C/svg%3E
Tiếp theo, bạn có thể sử dụng Docker volume trên container của mình thông qua tùy chọn -v, tùy chọn này kết hợp tất cả các tùy chọn trong một trường và tùy chọn --mount có cú pháp rõ ràng hơn, chi tiết hơn và tách biệt hơn.
Chạy lệnh docker run sau để tạo một container web2 mới với volume myvol thông qua tùy chọn --mount. Sau đó, kiểm tra web container thông qua lệnh docker inspect.
Mã:
docker run -d \
-p 8081:80 \
--name web2 \
--mount source=myvol,target=/app \
nginx:alpine
Mã:
docker inspect web
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22603%22%20height=%22263%22%3E%3C/svg%3E
Để sử dụng tùy chọn -v, lệnh docker run sẽ như sau. Tùy chọn -v sử dụng một trường duy nhất để gắn ổ đĩa myvol2 vào thư mục đích /app.
Mã:
docker run -d \
-p 8082:80 \
--name web3 \
-v myvol2:/app \
nginx:alpine
Mã:
docker rm web2 -f
docker volume rm myvol
Kết luận
Thật tuyệt vời! Bạn đã hoàn tất cài đặt Docker Engine trên máy chủ Debian 12 của mình. Bạn cũng đã học cách quản lý dịch vụ Docker thông qua tiện ích lệnh systemctl và học cách quản lý hình ảnh Docker, vùng chứa và khối lượng Docker thông qua máy khách Docker.Để khám phá thêm, bạn có thể bắt đầu xây dựng hình ảnh Docker cho ứng dụng của mình thông qua Dockerfile.