Tải bản đầy đủ (.pdf) (75 trang)

Tài liệu Docker Full

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.35 MB, 75 trang )

HUYQA-HOME.COM
039 6306 317 | |

Quách Anh Huy | Giáo trình Docker Cơ Bản

1 of 75


HUYQA-HOME.COM
039 6306 317 | |

MỤC LỤC
Chương 1) Mục tiêu khóa học & Đối tượng tham gia khóa học ...................................................................................................4
I) Nội dung khóa học .............................................................................................................................................................4
II) Đối tượng tham gia khóa học ............................................................................................................................................4
Chương 2) Nội dung Docker & Các thành phần cơ bản của docker
5
I) Nội dung Docker ................................................................................................................................................................5
II) Các khái niệm cần biết khi sử dụng Docker ....................................................................................................................5
III) Câu hỏi ôn tập chương 2 .................................................................................................................................................10
Chương 3) Cài đặt Docker..............................................................................................................................................................11
I) Cài đặt Docker trên hệ điều hành Windows 10 ............................................................................................................11
II) Cài đặt Docker trên hệ điều hành Centos 7 ...................................................................................................................17
III) Cài đặt Docker trên hệ điều hành Centos 8 ...................................................................................................................20
IV) Câu hỏi ôn tập chương 3 ................................................................................................................................................23
Chương 4) Docker Container
25
I) Docker container là gì? ....................................................................................................................................................25
II) Thực hành Docker Container .........................................................................................................................................25
III) Các câu lệnh thao tác Docker Container .......................................................................................................................29
IV) Bài tập Docker Container ..............................................................................................................................................32


V) Câu hỏi ôn tập chương 4 .................................................................................................................................................34
Chương 5) Quản lý Docker Volume và Docker File ....................................................................................................................36
I) Docker Volume và trường hợp nào sử dụng Docker Volumes ....................................................................................36
II) Thực hành Docker Volumes ...........................................................................................................................................38
III) Docker File ........................................................................................................................................................................39
IV) Cấu trúc Docker File ......................................................................................................................................................39
V) Thực hành Docker File ....................................................................................................................................................41
VI) Câu hỏi ôn tập chương 5 ................................................................................................................................................42
Chương 6) Quản lý Docker Network.............................................................................................................................................46
I) Network trong Docker .....................................................................................................................................................46
II) Default Network ...............................................................................................................................................................46
III) None Network ...................................................................................................................................................................46
IV) Bridge Network ...............................................................................................................................................................47
V) An Overlay network With Docker Engine Swarm Node .............................................................................................51
VI) Trường hợp sử dụng Default Bridge Network ............................................................................................................52
VII) IpVlan...............................................................................................................................................................................57
VIII) Thực hành Docker Network .......................................................................................................................................58
IX) Câu hỏi bài tập thực hành .............................................................................................................................................60
Chương 7) Docker Image ..............................................................................................................................................................61
I) Docker image ....................................................................................................................................................................61
II) Câu hỏi thực hành Docker image ...................................................................................................................................65
Chương 8) Docker Compose ..........................................................................................................................................................66
I) Khái niệm Docker Compose ...........................................................................................................................................67
II) Cài đặt Docker Compose .................................................................................................................................................67
III) Ví dụ chạy Docker Compose ...........................................................................................................................................68
IV) Cấu trúc Docker Compose .............................................................................................................................................69
V) Bài tập thực hành Docker Compose...............................................................................................................................69
VI) Câu hỏi ôn tập Chương 8 ................................................................................................................................................70

Quách Anh Huy | Giáo trình Docker Cơ Bản


2 of 75


HUYQA-HOME.COM
039 6306 317 | |

LỜI GIỚI THIỆU
Tài liệu Docker version 1.0 là tài liệu dùng cho huấn luyện, đào tạo cơ bản khóa học Docker tại
HUYQA-HOME.COM Tài liệu do tập thể các giảng viên, các chuyên gia an ninh mạng, quản trị
mạng HuyQA biên soạn.
Tài liệu được biên soạn theo hướng dẫn của chuyên gia quản trị mạng hạ tầng Docker, hướng
dẫn này cho các Developer, System Admin (Người quản trị viên hệ thống) để có thể tự làm chủ
môi trường apps cũng như khả năng quản lý container trên mơi trường Docker. Qua đó giúp cho
học viên tạo môi trường độc lập và tách biệt gọi là container để khởi chạy và phát triển ứng dụng
với Docker. Khi cần deploy apps lên bất kỳ server chỉ cần run container của Docker thì
application của bạn sẽ được khởi chạy ngay lập tức.
Các học viên khi tham gia học HuyQA, ngoài việc học tập với giảng viên, các học viên còn được
tham gia cộng đồng online gồm nhiều chuyên gia Quản trị mạng hệ thống để trao đổi học tập,
chia sẻ, nhiều tình huống khi triển khai một ứng dụng (application) lên mơi trường Docker. Qua
đó giúp cho học viên trao dồi thêm kỹ năng của mình.
Trong quá trình biên soạn tài liệu, cũng không thể tránh khỏi được những sai sót, mình rất mong
nhận được sự đóng góp ý của các bạn học viên, cũng như đọc giả. Các thơng tin góp ý
HuyQuach theo địa chỉ:
+ Huyqa-home.com
- ĐỊA CHỈ: 45 Đinh Tiên Hoàng, Phường Bến Nghé, Quận 1, TP.HCM.
- EMAIL:
- ĐIỆN THOẠI: 039 6306 317
- WEBSITE: .


Quách Anh Huy | Giáo trình Docker Cơ Bản

3 of 75


HUYQA-HOME.COM
039 6306 317 | |

CHƯƠNG 1: MỤC TIÊU KHÓA HỌC &
ĐỐI TƯỢNG THAM GIA KHÓA HỌC
1. KHÓA HỌC DOCKER CƠ BẢN CUNG CẤP CHO HỌC VIÊN:





Hiểu được kiến trúc hoạt động của Docker.
Quản trị các thành phần cơ bản của Docker trong máy tính cá nhân.
Kết nối với các container với nhau làm thành một hệ thống.
Sử dụng Docker Compose viết kịch bản build và run các contianer.

2. ĐỐI TƯỢNG THAM GIA KHĨA HỌC:




Các bạn Network và System Admin muốn xây dựng hệ thống DevOps dựa trên công
nghệ Docker.
Các bạn Developer muốn làm chủ môi trường phát triển ứng dụng trên Docker
Các bạn sinh viên CNTT và người yêu thích cơng nghệ tìm hiểu cơng nghệ mới.


Qch Anh Huy | Giáo trình Docker Cơ Bản

4 of 75


HUYQA-HOME.COM
039 6306 317 | |

CHƯƠNG 2: NỘI DUNG DOCKER & CÁC
THÀNH PHẦN CƠ BẢN CỦA DOCKER
I. NỘI DUNG DOCKER:







1. KHÁI NIỆM DOCKER:
Docker là một nền tảng cho Developer và System Admin (Quản trị viên hệ thống) để
develop và run application với container. Nó cho phép tạo các mơi trường độc lập và
tách biệt để khởi chạy và phát triển ứng dụng và môi trường này được gọi là Container.
Khi cần deploy lên bất kỳ server nào chỉ cần run container của Docker thì application
(ứng dụng) của bạn sẽ được khởi chạy ngay lập tức.
2. CHỨC NĂNG, VAI TRÒ CỦA DOCKER:
Cho phép phát triển, di chuyển và chạy các ứng dụng dựa vào cơng nghệ ảo hóa container
trong Linux.
Tự động triển khai các ứng dụng bên trong các container bằng cách cung cấp thêm một
lớp trừu tượng và tự động hóa việc ảo hóa "mức hệ điều hành".

Docker có thể sử dụng được trên cả 3 hệ điều hành phổ biến: Windows, Linux và Mac
OS.
Lợi ích của docker bao gồm:
o Nhanh trong việc triển khai, di chuyển, khởi động container
o Bảo mật
o Lightweight (tiết kiệm disk & CPU)
o Mã nguồn mở
o Hỗ trợ APIs để giao tiếp với container
o Phù hợp trong mơi trường làm việc địi hịi phải liên tục tích hợp và triển khai các
dịch vụ, phát triển cục bộ, các ứng dụng multi-tier.

II. CÁC KHÁI NIỆM CẦN BIẾT KHI SỬ DỤNG DOCKER:
-

1. IMAGES:
Images trong Docker hay còn gọi là Mirror. Là một template có sẵn (hoặc có thể tự tạo)
với các chỉ dẫn dùng để tạo ra các container.
Được xây dụng từ loạt các layers. Mỗi layer là một kết quả đại diện cho một lệnh
Dockerfile.
Lưu trữ dưới dạng read-only template.

Quách Anh Huy | Giáo trình Docker Cơ Bản

5 of 75


HUYQA-HOME.COM
039 6306 317 | |

Quách Anh Huy | Giáo trình Docker Cơ Bản


6 of 75


HUYQA-HOME.COM
039 6306 317 | |

-

-

2. DOCKER REGISTRY:
Docker Registry là nơi lưu trữ các image với hai chế độ là private và public.
Là nơi cho phép chia sẻ các image template để sử dụng trong quá trình làm việc với
Docker.

3. DOCKER VOLUMES:
Docker Container là một thể hiện của Docker Image với những thao tác cơ bản để sử
dụng qua CLI như start, stop, restart hay delete,…
Container Image là một gói phần mềm thực thi lightweight, độc lập và có thể thực thi
được bao gồm mọi thứ cần thiết cần thiết để chạy được nó: code, runtime, system tools,
system libraries, settings. Các ứng dụng có sẵn cho cả Linux và Windows. Các container
sẽ luôn chạy ổn định bất kỳ môi trường.

Quách Anh Huy | Giáo trình Docker Cơ Bản

7 of 75


HUYQA-HOME.COM

039 6306 317 | |

-

Containers and virtual machines có sự cách ly và phân bổ tài nguyên tương tự,
nhưng có chức năng khác vì các container ảo hóa hệ điều hành thay vì phần cứng.
Các container có tính portable và hiệu quả hơn.





Container là một sự trừu tượng hóa ở lớp ứng dụng và code phụ
thuộc vào nhau. Nhiều container có thể chạy trên cùng một máy và
chia sẻ kernel của hệ điều hành với các container khác, mỗi máy
đều chạy như các q trình bị cơ lập trong khơng gian người dùng.
Các container chiếm ít khơng gian hơn các máy ảo (container
image thường có vài trăm thậm chí là vài MB), và start gần như
ngay lập tức.
Máy ảo (VM) là một sự trừu tượng của phần cứng vật lý chuyển
tiếp từ một máy chủ sang nhiều máy chủ. Hypervisor cho phép
nhiều máy ảo chạy trên một máy duy nhất. Mỗi máy ảo bao gồm
một bản sao đầy đủ của một hệ điều hành, một hoặc nhiều ứng
dụng, các chương trình và thư viện cần thiết - chiếm hàng chục
GB. Máy ảo cũng có thể khởi động chậm.

Quách Anh Huy | Giáo trình Docker Cơ Bản

8 of 75



HUYQA-HOME.COM
039 6306 317 | |

3. CÂU HỎI ÔN TẬP CHƯƠNG 2: “NỘI DUNG DOCKER & CÁC
THÀNH PHẦN CƠ BẢN CỦA DOCKER:
Câu 1: Sự Khác Nhau Giữa Docker Và Hypervisors Là Gì?
Trả lời:
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
Câu 2: Bạn hãy cho biết cách cài đặt Docker trên Hệ Điều Hành Linux?
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
Câu 3: Những chức năng nào sau đây đúng với chức năng và vai trò của Docker?
o A. Cho phép phát triển, di chuyển và chạy các ứng dụng dựa vào cơng nghệ ảo

hóa container trong Linux.
o B. Tự động triển khai các ứng dụng bên trong các container bằng cách cung cấp
thêm một lớp trừu tượng và tự động hóa việc ảo hóa "mức hệ điều hành".
o C. Docker có thể sử dụng trên 4 nền tảng : Windows, Linux, MacOS, Thiết bị di
động.
o D. Docker có thể sử dụng được trên cả 3 hệ điều hành phổ biến: Windows, Linux
và Mac OS.
o E. Câu A,B,D đúng.
Câu 4: Bạn hãy cho biết khái niệm Docker sau đây là đúng?
o A. Docker là một nền tảng cho Developer và System Admin (Quản trị viên hệ
thống) để develop và run application với container. Nó cho phép tạo các môi
trường độc lập và tách biệt để khởi chạy và phát triển ứng dụng và môi trường
này được gọi là Container.
Quách Anh Huy | Giáo trình Docker Cơ Bản

9 of 75


HUYQA-HOME.COM
039 6306 317 | |

o B.Khi cần deploy lên bất kỳ server nào chỉ cần run container của Docker thì
application (ứng dụng) của bạn sẽ được khởi chạy ngay lập tức.
o C. Câu A,B điều đúng.
o D. Câu A,B điều sai.
Câu 5: Bạn hãy cho biết các thao tác cơ bản để sử dụng Docker bằng CLI (command
line)?
o A. Start, Stop, Restart, Delete
o B. Start, Stop
o C. Start, Restart

o D. Delete

Quách Anh Huy | Giáo trình Docker Cơ Bản

10 of 75


HUYQA-HOME.COM
039 6306 317 | |

CHƯƠNG 3: CÀI ĐẶT DOCKER
I. HƯỚNG DẪN CÀI ĐẶT DOCKER TRÊN HỆ ĐIỀU HÀNH
WINDOWS 10
1. CÀI ĐẶT DOCKER TRÊN HỆ ĐIỀU HÀNH WINDOWS 10:
- Ở đây các bạn chuẩn bị giúp mình một máy ảo hoặc máy có yêu cầu sau:
o CPU: Intel Core 5
o Memory: 8Gb hoặc 16 Gb
o Hard Disk: 50 Gb hoặc hơn.
2. Tiến hành cài đặt Docker trên Windows 10:
Bước 1: Tải file cài đặt Docker Desktop về máy Windows 10 tại:
/>
Giao diện trang chủ Docker

Quách Anh Huy | Giáo trình Docker Cơ Bản

11 of 75


HUYQA-HOME.COM
039 6306 317 | |


Bước 2: Nhấn vào file Docker Desktop Installer.exe đã tải về và tiến hành cài đặt

File cài đặt Docker Desktop Installer
Bước 3: Tại đây bạn tích vào 2 tùy chọn



Install required Windows Components For WSL2
Add shortcut to Desktop

Tùy chọn cài đặt Docker
Nhấn OK và tiếp tục q trình cài đặt cho đến khi hồn thành

Qch Anh Huy | Giáo trình Docker Cơ Bản

12 of 75


HUYQA-HOME.COM
039 6306 317 | |

Tiếp tục quá trình cài Docker
Bước 4: Nhấn vào Close và Restart để đóng và khởi động lại Windows. Hoàn thành việc cài đặt

Quách Anh Huy | Giáo trình Docker Cơ Bản

13 of 75



HUYQA-HOME.COM
039 6306 317 | |

Nhấn vào Close và Restart
3. Docker “CĨ GIAO DIỆN NHƯ THẾ NÀO?”
Sau khi hồn thành việc cài đặt thì bạn nhấp vào biểu tượng Docker Desktop trên màn hình
Desktop để mở chương trình Docker.

Biểu tượng phần mềm Docker Desktop
Giao diện Docker Desktop bao gồm các thành phần:
1. Container / Apps
2. Images
3. Volumes
4. Dev Environments
Quách Anh Huy | Giáo trình Docker Cơ Bản

14 of 75


HUYQA-HOME.COM
039 6306 317 | |

Giao diện Docker
5. CHẠY THỬ DOCKER XEM NHƯ THẾ NÀO
Ở trên chúng ta đã cài được Docker và xem được giao diện của Docker. Bây giờ các bạn hãy mở
giao diện Command Promp bằng cách vào Run gõ cmd. Sau đó nhập lệnh docker info để xem
thơng tin

Qch Anh Huy | Giáo trình Docker Cơ Bản


15 of 75


HUYQA-HOME.COM
039 6306 317 | |

Lệnh docker info
Hoặc bạn có thể sử dụng lệnh docker –version để xem phiên bản của phần mềm Docker.

Lệnh docker –version
Tiếp theo, chúng ta sẽ chạy thử một Image public trên hub của Docker là hello-world xem nó
hoạt động như thế nào.
Lệnh để run một Image và tạo container là docker run image_name . Nếu khơng tìm thấy nó sẽ
tự tải trên hub.docker.com về và khởi chạy.
Quách Anh Huy | Giáo trình Docker Cơ Bản

16 of 75


HUYQA-HOME.COM
039 6306 317 | |

Lệnh docker run hello-world
Sau khi đã tải được Image Hello World , nó sẽ tự động chạy và in ra dòng chữ Hello from
Docker.
Và bạn cũng có thể liệt kê danh sách các image kèm theo TAG, IMAGE ID, CREATED và
SIZE bằng lệnh docker image ls

Lệnh docker image ls
Bạn cũng có thể xóa image theo tên hoặc IMAGE ID bằng lệnh docker rmi image_id -f với

IMAGE ID là 3 ký tự đầu là được.
Ví dụ: Tơi muốn xóa image hello-world thì tơi sẽ nhập lệnh docker rmi d11 -f
Hoặc bạn cũng có thể liệt kê danh sách các container kèm theo CONTAINER ID, IMAGE,
COMMAND, CREATED. STATUS, PORTS, NAMES bằng cách nhập lệnh docker
container ls –all

Quách Anh Huy | Giáo trình Docker Cơ Bản

17 of 75


HUYQA-HOME.COM
039 6306 317 | |

Lệnh docker container ls -all
- CÁC LỆNH HAY DÙNG TRONG DOCKER
Dưới đây là các câu lệnh mà các bạn sẽ hay gặp và dùng trong Docker:
• docker info: xem thơng tin Docker
• docker –version: xem phiên bản docker
• docker run image_name: chạy một image
• docker image ls: liệt kê danh sách image
• docker container ls: liệt kê danh sách container
• docker –help: xem danh sách các lệnh trong docker
• docker rmi image_id -f: xóa image bằng IMAGE ID hoặc có thể dùng tên image
• docker container rm container_id: xóa container bằng CONTAINER ID hoặc có thể
dùng tên container

Quách Anh Huy | Giáo trình Docker Cơ Bản

18 of 75



HUYQA-HOME.COM
039 6306 317 | |

II. HƯỚNG DẪN CÀI ĐẶT DOCKER TRÊN HỆ ĐIỀU HÀNH
CENTOS 7
1 Chuẩn bị:
Một máy ảo CentOS7 có cấu hình như sau:

2 Cài đặt Docker sử dụng yum và repository:
Cài đặt các gói cần thiết
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Thêm Docker repo
sudo yum-config-manager --add-repo />Cài đặt bản lastest của Docker CE
sudo yum install -y docker-ce docker-ce-cli containerd.io
Kiểm tra lại cài đặt
sudo systemctl start docker
docker -v

Quách Anh Huy | Giáo trình Docker Cơ Bản

19 of 75


HUYQA-HOME.COM
039 6306 317 | |

Docker version 18.09.1, build
4c52b90

Chạy container đầu tiên với Docker
sudo docker run hello-world

Quách Anh Huy | Giáo trình Docker Cơ Bản

20 of 75


HUYQA-HOME.COM
039 6306 317 | |

Bản chất của câu lệnh trên, Docker sẽ pull một image là hello-world trên Docker hub về server
và chạy container với image đó.

Quách Anh Huy | Giáo trình Docker Cơ Bản

21 of 75


HUYQA-HOME.COM
039 6306 317 | |

III. HƯỚNG DẪN CÀI ĐẶT DOCKER TRÊN HỆ ĐIỀU HÀNH
CENTOS 8
1 Chuẩn bị:
Một máy ảo CentOS8 có cấu hình như sau:
Ram
3G

Cpu

Disk
Nic
OS
3 core
50
1 Nic
Centos8
2 Cài đặt Docker
# remove conflict packages with Docker first (Nếu như các bạn đã cài docker trước đó rồi thì
bạn sử dụng câu lệnh sau để remove những phiên bản docker)
[root@srv2 ~]# dnf -y remove podman runc

[root@srv2 ~]# curl -o
/etc/yum.repos.d/docker-ce.repo

[root@srv2 ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/docker-ce.repo
[root@srv2 ~]# dnf --enablerepo=docker-ce-stable -y install docker-ce

Quách Anh Huy | Giáo trình Docker Cơ Bản

22 of 75


HUYQA-HOME.COM
039 6306 317 | |

[root@srv2 ~]# systemctl enable --now docker

4.3 Kiểm tra lại cài đặt
[root@srv2 ~]# docker version


Quách Anh Huy | Giáo trình Docker Cơ Bản

23 of 75


HUYQA-HOME.COM
039 6306 317 | |

[root@srv2 ~]# systemctl start docker
[root@srv2 ~]# systemctl status docker

IV. Câu hỏi ôn tập chương 3
Câu 1: Bạn hãy nêu khái niệm Docker là gì? Hypervisors là gì?
Trả lời:
Câu 2: Câu lệnh nào để kiểm tra phiên bản docker đã cài đặt docker service của một máy
nào đó?
A. docker version
B. docker --version
C. docker
D. docker ls
Câu 3: Giao diện Docker Desktop bao gồm các thành phần nào sau đây?
A. Container / Apps, Images, Volumes, Dev Environments
Quách Anh Huy | Giáo trình Docker Cơ Bản

24 of 75


HUYQA-HOME.COM
039 6306 317 | |


B. Container / Apps
C. Images
D. Volumes
Câu 4: Bạn hãy cho biết câu lệnh nào để liệt kê các container bằng câu lệnh cli?
A. docker container ls
B. docker container help
C. docker container li
D. docker container
Câu 5: Câu lệnh nào dùng để xem và liệt kê các dòng lệnh trong docker container?
A. docker container help
B. docker container create
C. docker container ls
D. docker container li
Câu 6: (Thực Hành) Bạn hãy thực hiện quay video cài đặt Docker và thuyết trình các thao
tác mình làm, trên hệ điều hành Centos 8? (Gởi về cho mình).
+ Huyqa-home.com
- ĐỊA CHỈ: 45 Đinh Tiên Hoàng, Phường Bến Nghé, Quận 1, TP.HCM.
- EMAIL:
- ĐIỆN THOẠI: 039 6306 317
- WEBSITE: .

Quách Anh Huy | Giáo trình Docker Cơ Bản

25 of 75


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×