Giới thiệu Đóc cờ CI/CD
LongTV
1
2
Agenda
●
●
●
●
●
●
Giới thiệu đóc cờ
Đóc cờ cơ bản
Đóc cờ cô lập
Đóc cờ đại chiến Hypervisor
Đóc cờ CI/CD
Chốt sổ
3
Agenda
●
●
●
●
●
●
Giới thiệu đóc cờ
Đóc cờ cơ bản
Đóc cờ cô lập
Đóc cờ đại chiến Hypervisor
Đóc cờ CI/CD
Chốt sổ
4
Giới thiệu Docker
● Open source project
● Giúp đóng gói ứng dụng vào
container để shipping và run
ứng dụng dễ dàng và tiện
lợi hơn, ko phụ thuộc vào
môi trường.
● Mô tả về docker:
Nhẹ và nhanh
5
Lịch sử
● Solomon Hykes phát triển Docker tại
Pháp, ở cty dotCloud (cty về PaaS)
● Release Open source 03/2013
● 13/03/2014 nghỉ LXC và chơi
libcontainer
● 05/2016 đã có nhiều cty là main
contributor cho Docker: Cisco, Google,
Huawei, IBM, Microsoft, Red Hat,...
6
Project on Github
/>
7
Độ phát triển
8
Giao lưu Docker tại Việt Nam
● Docker Hà Nội:
/>● Docker Sài Gòn:
/>
9
10
Agenda
●
●
●
●
●
●
Giới thiệu đóc cờ
Đóc cờ cơ bản
Đóc cờ cô lập
Đóc cờ đại chiến Hypervisor
Đóc cờ CI/CD
Chốt sổ
11
Docker basic
1.
2.
3.
4.
5.
6.
7.
Docker Engine
Docker image
Docker container
Dockerfile
Docker Hub
Docker Cloud
Docker orchestration
12
Docker Engine
● Docker bao gồm:
○ Docker Engine: bộ open source mô phỏng
hoá container kết hợp với tools để build và
run container.
○ Docker Hub: SaaS để quản lý application
stacks.
13
Docker Engine
1. Docker daemon
2. REST API
3. CLI
14
Docker Image
● Được xây dựng lên từ các
layer
● Docker sử dụng union file
systems để tạo nên docker
image => giúp việc build
image trở nên nhanh hơn.
● Mỗi instruction sẽ tạo ra 1
layer của image.
● Các image được share trên
Docker Hub
15
Container?
16
Container là gì
A container image is a lightweight,
stand-alone, executable package of a
piece of software that includes everything
needed to run it: code, runtime, system
tools, system libraries, settings
17
Docker container
● Docker container được tạo ra từ images
● Cách tạo 1 container về cơ bản là dùng
command docker run:
$ sudo docker run -i -t ubuntu /bin/bash
○ CLI tương tác vs Docker daemon qua REST API để
tạo container từ image (sẽ pull image về nếu ko có
trong local)
○ Docker daemon sẽ thiết lập network, mount volume ,
○ Mỗi container được isolate trong các name spaces
riêng biệt.
18
Dockerfile
● Là text file chứa các instructions để build ra
một image.
● Cú pháp build image
docker build -t test/myapp .
● Các instruction phổ biến:
○
○
○
○
○
○
○
FROM <image_name>: base image
ADD
COPY
RUN
CMD
ENTRY_POINT
...
19
Ví dụ Dockerfile
FROM ubuntu:latest
MAINTAINER Long Ta ""
RUN apt-get update
RUN apt-get install -y python python-pip wget
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["hello.py"]
20
Docker Hub
● Cloud-based registry service để quản lý
image, build image và có link đến Docker
Cloud để deploy container.
● Features:
○
○
○
○
○
Image repositories
Automated Builds
Webhooks
Organizations
Integration with Github vs Bitbucket
/>22
Docker Cloud
● Là hosted registry service, hỗ trợ quản lý
infrastructure và quản lý application
lifecycle features để automate deploying
● Features:
○
○
○
○
Manage Builds and Images
Manage Infrastructure (Standard Mode)
Manage Nodes and Apps (Standard Mode)
Manage Swarms (Beta Swarm Mode)
23
Docker Cloud
● Đang hỗ trợ các Cloud Provider:
○
○
○
○
○
AWS
Digital Ocean
Microsoft Azure
SoftLayer
Packet
● Hỗ trợ linking đến các version control sau:
○ Github
○ Bitbucket
24