Giới thiệu về docker.

Docker là gì? Docker là 1 công cụ hỗ trợ việc tạo môi trường ảo (container) trên linux nhanh gọn và đơn giản.

Đặc điểm của Docker Nhanh, nhẹ Thời gian khởi động rất nhanh do Docker tạo OS ảo. Các container sử dụng chung các images nên cũng không tốn nhiều disks.

Docker images, Docker Hub Docker images là các files và settings sử dụng trong container được lưu lại và sử dụng lại.Docker hub là site chia sẻ và lưu giữ các file images này.

Settings rõ ràng, tự động Sử dụng các file settings như Dockerfile và được định nghĩa rõ ràng bằng codes. Làm cho tự động hoá các thao tác và giảm thiểu lỗi thao tác trong quá trình sử dụng.

Hướng application Mục đích của docker hướng tới là để dễ dàng thực hiện các thao tác build, run, deploy cho application.

Linh hoạt , tự do Docker có rất nhiều tools hỗ trợ, các tools này phần lớn đều có thể chạy riêng rẽ, nên rất dễ sử dụng.

Sự khác biệt giữa container và máy ảo Container thực hiện các process trên môi trường OS ảo, điều đó giúp container nhanh hơn, nhẹ hơn, đỡ tốn tài nguyên hơn so với máy ảo thông thường.

Một số khái niệm cơ bản của docker Container Môi trường ảo tạo ra từ docker images.

Docker images Chứa các files settings và hệ thống của containers.

Docker server Nơi quản lý các containers, images.

Docker client Các tools GUI, command để users thao tác trên docker.

Docker hub (repo) Sites lưu trữ và chia sẻ các images Docker.

Một sô command cơ bản của docker Pull một image từ Docker Hub

$ docker pull <image name>

Khởi động và chạy 1 image docker.

Ví dụ : hello world

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
 latest: Pulling from library/hello-world
 535020c3e8ad: Pull complete
 af340544ed62: Pull complete
 Digest: sha256:a68868bfe696c00866942e8f5ca39e3e31b79c1e50feaee4ce5e28df2f051d5c
 Status: Downloaded newer image for hello-world:latest

 Hello from Docker.
 This message shows that your installation appears to be working correctly.

 To generate this message, Docker took the following steps:
 1. The Docker Engine CLI client contacted the Docker Engine daemon.
 2. The Docker Engine daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker Engine daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker Engine daemon streamed that output to the Docker Engine CLI client, which sent it
    to your terminal.

 To try something more ambitious, you can run an Ubuntu container with:

Ví dụ : Ubuntu

$ docker run -i -t ubuntu /bin/bash
Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

 For more examples and ideas, visit:
 https://docs.docker.com/userguide/

Ví dụ : Nginx với cổng 8080

$ docker run -p 8080:80 ngin

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

Liệt kê các images hiện có

$ docker images
REPOSITORY           TAG         IMAGE ID                 CREATED             SIZE
hello-world               latest      91c95931e552        5 weeks ago        910 B

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
CONTAINER ID        IMAGE               COMMAND             CREATED                 STATUS                                     PORTS               NAMES
 592376ff3eb8        hello-world         "/hello"                    25 seconds ago      Exited (0) 24 seconds ago                                tungpham

Tắt container (docker kill)

$ docker kill <ID hoặc NAME>

Xoá container (docker rm)

$ docker rm <ID hoặc NAME>

Nếu container đang chạy, bạn cũng có thể xoá nhưng phải thêm tham số -f vào sau rm để force remove:

$docker rm -f <ID hoặc NAME>

Khởi động và truy cập lại vào một container đã tắt

$ docker start <ID hoặc NAME>
$ docker exec -it <ID hoặc NAME> /bin/bash

Xoá một image

$ docker rmi <ID hoặc NAME>

hoặc

$ docker rmi -f <ID hoặc NAME>

Trên đây mình giới thiệu 1 vài thứ cơ bản của docker, hy vọng giúp ích cho các bạn khi bắt đầu làm quen với nó.

Tham khảo: https://docs.docker.com