1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu docker (nguyên lý hệ điều hành)

19 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về Docker
Tác giả Nguyễn Xuân Hòa, Trịnh Văn Khánh
Trường học Đại học Công nghệ – Đại học Quốc gia Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại bài báo cáo
Định dạng
Số trang 19
Dung lượng 735,92 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1 Giớithiệu 3 1.1 Tổngquanvềcontainerization . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 MụcđíchvàýnghĩacủaDocker . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Mụctiêucủabàibáocáo. . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 BốicảnhcủaDocker 3 2.1 Sựtiếnhóacủacáccôngnghệcontainerization . . . . . . . . . . . . . . 4 2.2 TạisaoDockertrởthànhmộtnềntảngcontainerphổbiến . . . . . . . . 4 3 Dockerlàgì? 5 3.1 ĐịnhnghĩavàcáckháiniệmcốtlõicủaDocker . . . . . . . . . . . . . . 5 3.2 Sosánhvớimáyảo(VMs) . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 KiếntrúcvàcácthànhphầncủaDocker . . . . . . . . . . . . . . . . . . 6 4 DockerUseCases 8 5 BắtđầuvớiDocker 8 5.1 Càiđặtvàthiếtlậptrêncácnềntảngkhácnhau(Windows,macOS,Linux) 8 5.2 Chạycontainerđầutiêncủabạn . . . . . . . . . . . . . . . . . . . . . . 9 5.3 CáclệnhvàthaotáccơbảncủaDocker . . . . . . . . . . . . . . . . . . 9 6 CáckháiniệmcốtlõicủaContainer 10 6.1 ContainerLifeCircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.2 CáccâulệnhbêntrongContainer . . . . . . . . . . . . . . . . . . . . . . 10 6.3 PortMapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.4 LogsTrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.5 Volumebindmount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 7 DockerfilevàDockerCompose 12 7.1 ViếtDockerfilesđểxâydựngcácảnhtùychỉnh . . . . . . . . . . . . . . 12 7.2 BuildContext .dockerignore . . . . . . . . . . . . . . . . . . . . . . . . 13 7.3 SửdụngDockerComposechocácứngdụngđacontainer . . . . . . . . . 13 1 8 Mạng và Volumes 15 8.1 Hiểu về mạng Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.2 Quản lý dữ liệu với Docker volumes . . . . . . . . . . . . . . . . . . . . . 16 9 Docker Demo 10 Thách thức và những điều cần cân nhắc 11 References 16 16 18

Trang 1

Khoa Công nghệ thông tin Đại học Công nghệ – Đại học Quốc gia Hà Nội

Tìm hiểu về Docker

Nguyễn Xuân Hòa 21020072@vnu.edu.vn

Trịnh Văn Khánh 21020343@vnu.edu.vn

Trang 2

Mục lục

1.1 Tổng quan về containerization 3

1.2 Mục đích và ý nghĩa của Docker 3

1.3 Mục tiêu của bài báo cáo 3

2 Bối cảnh của Docker 3 2.1 Sự tiến hóa của các công nghệ containerization 4

2.2 Tại sao Docker trở thành một nền tảng container phổ biến 4

3 Docker là gì? 5 3.1 Định nghĩa và các khái niệm cốt lõi của Docker 5

3.2 So sánh với máy ảo (VMs) 6

3.3 Kiến trúc và các thành phần của Docker 6

4 Docker Use Cases 8 5 Bắt đầu với Docker 8 5.1 Cài đặt và thiết lập trên các nền tảng khác nhau (Windows, macOS, Linux) 8 5.2 Chạy container đầu tiên của bạn 9

5.3 Các lệnh và thao tác cơ bản của Docker 9

6 Các khái niệm cốt lõi của Container 10 6.1 Container Life Circle 10

6.2 Các câu lệnh bên trong Container 10

6.3 Port Mapping 11

6.4 Logs Trace 11

6.5 Volume - bind mount 11

7 Dockerfile và Docker Compose 12 7.1 Viết Dockerfiles để xây dựng các ảnh tùy chỉnh 12

7.2 Build Context - dockerignore 13

7.3 Sử dụng Docker Compose cho các ứng dụng đa container 13

Trang 3

8 Mạng và Volumes 15

8.1 Hiểu về mạng Docker 15 8.2 Quản lý dữ liệu với Docker volumes 16

Trang 4

1 Giới thiệu

1.1 Tổng quan về containerization

- Containerization là một kỹ thuật cho phép các ứng dụng chạy trên các nền tảng khác nhau mà không cần phải cài đặt các thành phần phụ thuộc (dependencies) của chúng Các ứng dụng được đóng gói trong các container, mỗi container chứa tất cả các thành phần cần thiết để chạy ứng dụng đó Các container này có thể được chạy trên các máy chủ vật lý hoặc máy ảo, và có thể được chuyển giữa các máy chủ một cách dễ dàng

1.2 Mục đích và ý nghĩa của Docker

- Docker là một nền tảng containerization phổ biến nhất hiện nay Nó cung cấp một cách tiếp cận đơn giản và hiệu quả để phát triển, chạy và quản lý các ứng dụng trong các container Docker cũng cung cấp một hệ sinh thái phong phú các công cụ và dịch vụ hỗ trợ cho việc phát triển và triển khai các ứng dụng trong các container

- Docker là một công nghệ quan trọng trong việc phát triển phần mềm hiện đại Nó giúp các nhà phát triển phần mềm có thể phát triển và chạy các ứng dụng của họ trên nhiều nền tảng khác nhau một cách dễ dàng Nó cũng giúp các nhà quản trị hệ thống có thể quản lý các ứng dụng một cách hiệu quả hơn

1.3 Mục tiêu của bài báo cáo

- Bài báo cáo này sẽ cung cấp một cái nhìn tổng quan về Docker, bao gồm các khái niệm

cơ bản, lợi ích, các trường hợp sử dụng, các thành phần của hệ sinh thái Docker Nó cũng

sẽ đề cập đến một số thách thức và hạn chế của Docker, cũng như những xu hướng và phát triển trong tương lai

Hình 1: Docker là công nghệ container phổ biến nhất hiện nay

Trang 5

2.1 Sự tiến hóa của các công nghệ containerization

- Các công nghệ containerization đã tồn tại từ nhiều năm trước khi Docker ra đời Các công nghệ này bao gồm các công nghệ như chroot, Solaris Zones, FreeBSD Jails, Linux-VServer, OpenVZ, LXC, Warden, cgroups, namespaces, và AUFS Các công nghệ này đều có mục đích chung là cô lập các ứng dụng trong các môi trường độc lập với nhau, nhưng chúng có những hạn chế khác nhau

- Containerization trước đây thường chỉ hỗ trợ cho các ứng dụng chạy trên một nền tảng

cụ thể Docker ra đời với mục tiêu là cung cấp một nền tảng containerization độc lập với nền tảng, cho phép các ứng dụng có thể chạy trên nhiều nền tảng khác nhau

2.2 Tại sao Docker trở thành một nền tảng container phổ biến

- Tính di động: Docker cho phép đóng gói ứng dụng và môi trường của chúng vào các

container Điều này đồng nghĩa rằng một ứng dụng Docker sẽ hoạt động tương tự trên mọi máy chủ hỗ trợ Docker, bất kể môi trường máy chủ đó cài đặt

- Tính cô đọng: Docker containers sử dụng cùng một hạt nhân của hệ điều hành và

chia sẻ các tài nguyên hệ thống với host OS Điều này giúp tiết kiệm tài nguyên hơn so với việc chạy các máy ảo đầy đủ

- Tính nhẹ nhàng: Containers Docker khởi động nhanh hơn so với máy ảo truyền thống,

vì chúng không cần chạy một hệ điều hành đầy đủ

- Quản lý tài nguyên tốt hơn: Docker cung cấp các công cụ để quản lý tài nguyên

của containers, cho phép bạn giới hạn mức tiêu tốn tài nguyên như CPU, RAM, mạng, v.v

- Quản lý ứng dụng dễ dàng: Docker Compose và các công cụ quản lý tương tự giúp

triển khai và quản lý các ứng dụng đa container một cách dễ dàng Điều này giúp tổ chức phát triển và triển khai ứng dụng một cách hiệu quả hơn

- Tích hợp liền mạch với các công cụ và hệ thống khác: Docker cung cấp các

API và tiêu chuẩn mở, cho phép tích hợp với các công cụ quản lý và hệ thống khác như Kubernetes, Jenkins, CI/CD pipelines, v.v

- Cộng đồng hỗ trợ mạnh mẽ: Docker có một cộng đồng lớn và tích cực, điều này

có nghĩa là có nhiều tài liệu, hướng dẫn và hỗ trợ từ cộng đồng để giúp người dùng giải quyết vấn đề và tận dụng tối đa lợi ích từ Docker

- Hỗ trợ đa nền tảng: Docker hỗ trợ nhiều nền tảng hệ điều hành như Linux, Windows,

MacOS và có thể chạy trên nhiều loại hạ tầng khác nhau như trên máy tính cá nhân, trên đám mây công cộng, hay trong môi trường tự lập

Trang 6

3 Docker là gì?

3.1 Định nghĩa và các khái niệm cốt lõi của Docker

- Docker là một nền tảng phần mềm giúp người phát triển có khả năng đóng gói ứng dụng và các phụ thuộc của nó vào trong một container độc lập Container này chứa môi trường và tài nguyên cần thiết để ứng dụng hoạt động một cách đáng tin cậy và nhất quán trên bất kỳ máy chủ nào

- Các khái niệm cốt lõi của Docker bao gồm:

• Image: Một hình ảnh Docker là một gói chứa tất cả các thành phần cần thiết để

chạy một ứng dụng, bao gồm mã nguồn, thư viện, biến môi trường và cài đặt khác Images được sử dụng để tạo các container

• Container: Một container Docker là một thực thể chạy của một hình ảnh Nó chứa

tất cả những gì cần thiết để thực thi ứng dụng, bao gồm hệ điều hành, môi trường thực thi, mã nguồn, thư viện, biến môi trường và cài đặt

• Registry: Docker Registry là nơi lưu trữ các hình ảnh Docker Docker Hub là một

ví dụ phổ biến về public registry, nơi các nhà phát triển có thể chia sẻ và tìm kiếm các hình ảnh

• Dockerfile: Dockerfile là một tệp văn bản chứa các hướng dẫn để xây dựng một

hình ảnh Docker Nó mô tả cách sắp xếp các thành phần của hình ảnh, cài đặt các phụ thuộc, và cấu hình môi trường

• Compose: Docker Compose là một công cụ giúp định nghĩa và quản lý các ứng

dụng multi-container Nó sử dụng một tệp YAML để mô tả cấu hình của các container, mạng và lưu trữ dữ liệu

• Volume: Docker Volume là một cách để lưu trữ và quản lý dữ liệu giữa các container

một cách độc lập Điều này cho phép dữ liệu được duy trì và chia sẻ giữa các container khác nhau

• Network: Docker Network cung cấp một cách để các container giao tiếp với nhau

hoặc với mạng bên ngoài Điều này cho phép các container hoạt động như các máy

ảo độc lập với địa chỉ IP và cổng riêng

• Swarm: Docker Swarm là một công cụ tích hợp sẵn cho việc quản lý và triển khai

các ứng dụng được đóng gói trong Docker Nó cho phép tổ chức các container thành các nhóm, gọi là services, để tăng tính sẵn sàng và mở rộng

Trang 7

Hình 2: So sánh giữa Docker và VMs

3.2 So sánh với máy ảo (VMs)

Sử dụng lại OS máy chủ Chia sẻ kernel OS máy chủ Chạy hệ điều hành độc lập Tài nguyên hệ thống Yêu cầu ít tài nguyên hơn Yêu cầu nhiều tài nguyên

hơn

(tính bằng giây)

Mất thời gian khởi đầu lâu hơn (tính bằng phút)

khai

Yêu cầu cài đặt hệ điều hành

hệ điều hành Hiệu suất tài nguyên Tận dụng tài nguyên kernel

OS máy chủ

Yêu cầu tài nguyên riêng biệt

trong môi trường phát triển

Được sử dụng cho ảo hóa

hệ thống và phát triển

Bảng 1: So sánh giữa Docker và VMs

3.3 Kiến trúc và các thành phần của Docker

- Docker sử dụng kiến trúc client – server Docker client sử dụng một REST API (thông qua UNIX socket, hoặc cổng mạng) để có thể giao tiếp với Docker daemon, tiến trình này thực hiện công việc tạo, chạy và phân phối các Docker container Docker client và daemon có thể chạy trên cùng một hệ thống hoặc có thể kết nối Docker client với Docker daemon từ xa Kiến trúc của Docker sẽ bao gồm:

Trang 8

Hình 3: Kiến trúc của Docker

• Docker daemon: Daemon Docker lắng nghe các yêu cầu của người dùng thông

qua Docker API và quản lý các đối tượng Docker như image, container, network

và volume Một daemon cũng có thể giao tiếp với các daemon khác để quản lý các Docker service

• Docker client: Docker client (docker) là cách thức mà nhiều người dùng tương tác

với Docker Khi bạn sử dụng các câu lệnh như docker run, client thông qua Docker API sẽ gửi các lệnh này đến dockerd, nơi thực hiện chúng Docker client có thể giao tiếp với nhiều hơn một Docker daemon

• Docker registry: Docker registry sẽ là nơi lưu trữ các Docker image Docker Hub

là nơi lưu trữ Docker image công khai (public registry) mà bất kỳ ai cũng có thể sử dụng và Docker được định cấu hình mặc định để tìm image trên Docker Hub Ngoài

ra người dùng có thể cấu hình các registry riêng tư khác để lưu trữ Docker image Khi người dùng sử dụng câu lệnh “docker pull” hoặc “docker run”, các image chỉ định sẽ được tải về dựa trên registry đã được cấu hình trước đó Khi người dùng sử dụng câu lệnh “docker push”, image cũng sẽ được tải lên registry mà người dùng

đã cấu hình từ trước đó

• Docker image: Docker Image là template read-only (chỉ cho phép đọc) với các

hướng dẫn để tạo Docker container Image sẽ được sử dụng để đóng gói các ứng dụng và các thành phần đi kèm của ứng dụng, được lưu trữ ở server hoặc trên registry Ví dụ bạn có thể sử dụng Dockerfile để tạo ra một Docker image sử dụng

hệ điều hành Ubuntu và cài đặt Apache server với những cài đặt, cấu hình tùy chỉnh của riêng mình

• Docker container: Container là 1 “runable instance” của image Bạn có thể khởi

tạo, dừng hoặc xóa container bằng cách sử dụng Docker API hoặc CLI Bạn có thể kết nối container đến 1 hoặc nhiều network, thư mục lưu trữ, hoặc thậm chí tạo ra

1 image mới dựa trên tình trạng hiện tại của container Mặc định 1 container được

“cách ly” với các container và server nếu người dùng không có các cài đặt gì thêm

• Docker volume: Volume được thiết kể để làm nơi lưu trữ các dữ liệu độc lập với

vòng đời của container

Trang 9

• Docker network: Cung cấp một private network mà chỉ tồn tại giữa container và

server, giúp các container có thể giao tiếp được với nhau một cách dễ dàng

• Docker service: Service cho phép bạn mở rộng các contaner thông qua nhiều

Docker daemon, chúng giao tiếp với nhau thông qua swarm cluster bao gồm nhiều manager và worker Mỗi một node của swarm là 1 Docker daemon giao tiếp với nhau bằng cách sử dụng Docker API Theo mặc định thì service được cân bằng tải trên các node

Tính năng Mô tả

Cô lập ứng

dụng

Các container Docker cung cấp môi trường nhẹ và cô lập, cho phép ứng dụng chạy độc lập

Kiến trúc

Microservices

Docker hỗ trợ triển khai các dịch vụ nhỏ gọn, giúp dễ dàng phát triển, triển khai và mở rộ các thành phần

Tích hợp và

Triển khai liên

tục (CI/CD)

Docker giúp tạo ra môi trường đáng tin cậy cho việc xây dựng, kiểm tra và triển khai ứng dụng

Thực hành

DevOps

Docker là công cụ cốt lõi trong bộ công cụ DevOps, hỗ trợ tự động hóa, triển khai liên tục và cơ sở hạ tầng dưới dạng mã

Bảng 2: Các trường hợp sử dụng của Docker

5.1 Cài đặt và thiết lập trên các nền tảng khác nhau (Windows,

macOS, Linux)

- Set up Docker’s apt repository:

# Add Docker's official GPG key:

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |

sudo gpg dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:

echo \

"deb [arch="$(dpkg print-architecture)" signed-by=\

/etc/apt/keyrings/docker.gpg] \

https://download.docker.com/linux/ubuntu

Trang 10

"$( /etc/os-release && echo "$VERSION_CODENAME")" stable" | \

sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

- Install the Docker packages:

sudo apt-get install docker-ce docker-ce-cli \

containerd.io docker-buildx-plugin docker-compose-plugin

5.2 Chạy container đầu tiên của bạn

- Pull image Ubuntu 20.04 từ Docker Hub:

docker pull ubuntu:20.04

- Chạy container Ubuntu 20.04:

docker run -it rm ubuntu:20.04

Chú ý quan trọng:

• Khi chạy Container ở chế độ -it (interactive mode), để thoát ra khỏi Container, ta

có thể sử dụng tổ hợp phím ”Ctrl D”, đồng nghĩa Container này sẽ dừng lại Trong trường hợp ta chỉ muốn thoát ra tạm thời và không muốn dừng Container, phải sử dụng tổ hợp phím ”Ctrl + P + Q” (Attach -detach mode)

• Để trở lại Container (re-attach Container), sử dụng lệnh:

docker attach <container_id>

5.3 Các lệnh và thao tác cơ bản của Docker

docker ps Liệt kê các container đang chạy

docker ps -a Liệt kê tất cả các container

docker rm <container_id> Xóa container

docker rmi <image_id> Xóa image

docker build -t <image_name>

<path_to_Dockerfile>

Tạo image từ Dockerfile

docker run -it –rm <image_name> Chạy container

Bảng 3: Các lệnh và thao tác cơ bản của Docker

Trang 11

6 Các khái niệm cốt lõi của Container

6.1 Container Life Circle

Hình 4: Chu kỳ sống của Container

- Chu kỳ sống của Container được quyết định bởi tiến trình có PID = 1 chạy bên trong

nó (tiến trình chủ đạo) Tiến trình PID 1 còn sống đồng nghĩa rằng Container còn hoạt động

- Khi sử dụng ‘docker stop‘, Docker sẽ gửi tín hiệu SIGTERM (terminating signal) để dừng tiến trình PID 1, sau đó Container sẽ dừng với EXITED(0) Trong vòng 10 giây, nếu Container chưa dừng lại, Docker sẽ gửi tín hiệu SIGKILL (kill signal) và Container

sẽ dừng lại ngay lập tức với exit code là EXITED(137)

6.2 Các câu lệnh bên trong Container

- Syntax: docker exec <containerId> <command>

- Example Commands:

• docker exec <containerId> echo Helloworld

• docker exec <containerId> sh -c ”echo PATH ”

• docker exec <containerId> echo PATH

- SSH (Secure Shell) trong Container: Docker cho phép người dùng kết nối từ xa tới Container chủ đạo bằng câu lệnh:

• docker exec -it <containerId> sh

• docker exec -it <containerId> bash

Các câu lệnh này sẽ được demo ở những chương tiếp theo

Trang 12

6.3 Port Mapping

- Trong thực tế, hành động SSH trực tiếp vào trong Container không phải là một hành động tốt Việc người dùng truy cập vào Container từ xa là khó khăn vì hầu hết người dùng không rõ khái niệm của SSH, hơn nữa truy cập Container trực tiếp như vậy sẽ ảnh hướng đến bảo mật của ứng dụng

- Khái niệm Port Mapping sẽ giải quyết vấn đề trên, cho phép chuyển tiếp các kết nối mạng từ máy chủ host vào container Docker, các ứng dụng trong container có thể truy cập từ bên ngoài qua các cổng được chỉ định

- Syntax:

docker run -p <target_port>:<container_port>

- Example

docker run -p 80:80 nginx

6.4 Logs Trace

- Logs trace cho phép giám sát hoạt động của Container Docker, bao gồm thông tin về quá trình khởi động, lỗi, cảnh báo và hoạt động của ứng dụng bên trong container Điều này giúp bạn kiểm soát và quản lý container một cách hiệu quả, phát hiện và xử lý sự

cố một cách nhanh chóng

- Syntax:

docker logs -f <container_id>

• -f : keep following the log output

6.5 Volume - bind mount

- Docker Engine đóng gói ứng dụng thành các Images, các Image trong Docker có tính chất bất biến (immutable), không thể chỉnh sửa được Do vậy, việc sửa đổi dữ liệu bên trong Container sẽ không gây ảnh hưởng đến Images gốc ban đầu và các Container khác Tuy nhiên điều đó đồng nghĩa rằng, khi tắt Container hoặc vì một sự cố nào đó Container

tự động exit, mọi dữ liệu sẽ bị mất (Stateless Container) Trong tình huống trên, việc chạy các ứng dụng database để lưu trữ dữ liệu sẽ trở nên không hiệu quả

- Volume: phần bộ nhớ Docker dùng để lưu trữ bộ nhớ cho Container (một thư mục ảo

do Docker quản lý)

- Bind mount: là thao tác gắn Volume vào Container nhằm giải quyết tính chất stateless

của Container

Syntax

Ngày đăng: 10/12/2023, 23:58

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Docker Documentation. (2021). Docker overview. Retrieved from https://docs.docker.com/get-started/overview/ Sách, tạp chí
Tiêu đề: Docker overview
Tác giả: Docker Documentation
Năm: 2021
2. Docker Documentation. (2021). Docker architecture. Retrieved from https://docs.docker.com/get-started/overview/ Sách, tạp chí
Tiêu đề: Docker architecture
Tác giả: Docker Documentation
Năm: 2021
3. Docker Documentation. (2021). Docker Compose overview. Retrieved from https://docs.docker.com/compose/ Sách, tạp chí
Tiêu đề: Docker Compose overview
Tác giả: Docker Documentation
Năm: 2021
4. Docker Documentation. (2021). Docker networking. Retrieved from https://docs.docker.com/network/ Sách, tạp chí
Tiêu đề: Docker networking
Tác giả: Docker Documentation
Năm: 2021
5. Docker Documentation. (2021). Docker volumes. Retrieved from https://docs.docker.com/storage/volumes/ Sách, tạp chí
Tiêu đề: Docker volumes
Tác giả: Docker Documentation
Năm: 2021

HÌNH ẢNH LIÊN QUAN

Hình 1: Docker là công nghệ container phổ biến nhất hiện nay - Tìm hiểu docker (nguyên lý hệ điều hành)
Hình 1 Docker là công nghệ container phổ biến nhất hiện nay (Trang 4)
Hình 2: So sánh giữa Docker và VMs - Tìm hiểu docker (nguyên lý hệ điều hành)
Hình 2 So sánh giữa Docker và VMs (Trang 7)
Bảng 1: So sánh giữa Docker và VMs - Tìm hiểu docker (nguyên lý hệ điều hành)
Bảng 1 So sánh giữa Docker và VMs (Trang 7)
Hình 3: Kiến trúc của Docker - Tìm hiểu docker (nguyên lý hệ điều hành)
Hình 3 Kiến trúc của Docker (Trang 8)
Hình 4: Chu kỳ sống của Container - Tìm hiểu docker (nguyên lý hệ điều hành)
Hình 4 Chu kỳ sống của Container (Trang 11)
Hình 5: 3 modules - Tìm hiểu docker (nguyên lý hệ điều hành)
Hình 5 3 modules (Trang 14)
Hình 6: Docker network - Tìm hiểu docker (nguyên lý hệ điều hành)
Hình 6 Docker network (Trang 16)
Hình 7: Docker volume - Tìm hiểu docker (nguyên lý hệ điều hành)
Hình 7 Docker volume (Trang 17)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w