DOCKER
1. Docker là gì?
Docker là
một giải pháp ảo hóa mã nguồn mở, ban đầu viết bằng Python, sau đó viết bằng
Go-Lang. Docker có thể đóng gói và chạy chương trình của mình trên các môi trường
khác nhau (lilux, windows …) một cách nhanh nhất dưới dạng Container gọn nhẹ.
Người sáng lập Docker, Solomon Hykes
Docker hiện
được Amazon, Google, IBM, Microsoft và VMware hỗ trợ
2.
Docker khác
gì so với máy ảo
Docker đưa
ra một giải pháp mới cho vấn đề ảo hóa, thay vì tạo ra các máy ảo con chạy độc
lập kiểu “Tạo phần cứng ảo và cài HĐH lên đó”, có thể đóng thành các Container
riêng lẻ, các container này sử dụng chung tài nguyên của máy mẹ, do đó hoạt động
nhẹ và nhanh hơn các máy ảo dạng “Tạo phần cứng ảo và cài HĐH lên đó”
3.
Các thành
phần của Docker 3.1
Docker Engine: dùng để tạo và chạy các “container” <
Container là 1 đối tượng mà ứng dụng chạy trong đó. Container được tạo từ image
>
Với Docker
Engine, chứa các image là các chương trình đã được đóng gói. Các image này có
thể lấy từ thư viện Docker hub hoặc người dùng tự đẩy image vào
•
3.2
Kitematic: là giao diện GUI cho Docker
•
3.3 Docker
hub: là 1 dịch vụ host public của Docker để quản lý các images <
Image
là các chương trình đã được đóng gói> - là nơi để mọi người upload, chia sẽ các images
Docker của mình
https://hub.docker.com/explore/
Sau khi
tìm ra image rồi, chúng ta tiến hành download nó về, bước này gọi là Pull
Docker pull mongo
Docker pull centos:centos6
Docker pull luongnv/admnvluong
Luongnv: tên tác giả
Admnvluong: tên file image
•
3.4 Docker
Compose: là 1 công cụ để tạo và chạy nhiều containers cùng 1 lúc.
Với Docker
Compose, chỉ cần định nghĩa các containers lên 1 file (text)
<Dockerfile> <
Dockerfile định nghĩa 1 image sẽ được tạo như thế nào, gồm các ứng dụng nào được
cài sẵn bên trong đó>
Để tạo một
image chúng ta sẽ tạo một Dockerfile rồi sau đó chạy Dockerfile đó để create
image
Dockerfile cơ bản bao gồm có :
•
FROM: Chỉ ra image được build từ đâu (từ image gốc nào)
Ví dụ: FROM ubuntu hoặc có thể chỉ rõ tag của image gốc 'FROM ubuntu:12.04'
•
RUN: Dùng để chạy một lệnh nào đó khi build
image
•
COMMAND: Các câu lệnh chạy trong image
[
Ở Dockerfile trên là các câu lệnh để download và cài đặt mongodb ].
Sau khi tạo
xong Dockerfile thì chạy lệnh sau để tạo image
sudo docker build -t linuxhjkaru/ubuntu_with_mongo:v1 .
•
3.5 Docker
Trusted Registry (Docker Registry) :là dịch vụ cung cấp private image
4.
Các câu lệnh
trong Docker
•
Cài đặt
Docker
rpm -iUvh
http://dl.fedoraproject.org/pub/epel/6/x86_64/epelrelease-6-8.noarch.rpm yum -y install docker-io
sudo yum install epel-release sudo yum install -y python-pip
sudo pip install docker-composetall
docker-composer service docker
start chkconfig docker on
•
Lệnh vận
hành dịch vụ docker
--version -> xem version của docker docker -v -> xem version docker service docker status -> xem trạng thái docker
service docker start| stop -> start| stop
docker
•
Pull một
image từ Docker Hub docker pull <image name> docker load <
telehub.1.5.tar docker commit -m
"Name" ID hoasao/telehub:1.5
•
Tạo một
container từ image có sẵn
docker run -v <thư mục
trên máy tính>:<thư mục trong
container> - |
|
it <image name> /bin/bash |
|
docker
run -v /abc:/abc -p 80:80 -it ubuntu /bin/bash
docker run --net=host
--privileged
--name="telehub" -dti |
|
hoasao/telehub:1.5 |
|
•
Liệt kê
các images hiện có docker
images
•
Liệt kê
các container đang chạy docker ps
•
Liệt kê
toàn bộ các container đang chạy và đã tắt docker ps -a
•
Khởi động
và truy cập lại vào một container đã tắt
docker start <ID hoặc NAME> docker attach ID OR
docker exec -it <ID hoặc NAME> /bin/bash
•
Tắt một
container
docker stop <ID hoặc NAME>
•
Xoá một
container docker rm
<ID hoặc NAME> docker rm -f <ID hoặc NAME>
•
Xoá một
image docker rmi
<ID hoặc NAME> docker rmi -f <ID hoặc NAME>
•
Đóng gói
container thành file .tar
docker save hoasao/telehub:1.5 >
telehub.1.5.tar
0 nhận xét:
Đăng nhận xét