Docker là một công cụ để đóng gói ứng dụng và có các thành phần như Docker Engine, Docker Hub, Images, Container, Docker Client, Docker Daemon, Dockerfile, Volumes, Docker Registry, Docker Networking, Docker Compose, Docker Swarm, Docker Services. Có thể sử dụng các lệnh như docker image/container ls, docker image/container rm, docker images –a –q, docker ps –a, docker stop/start, docker logs, docker build, docker run -d, docker pull để quản lý và tương tác với Docker.
-
Docker Engine : là thành phần chính của Docker, như một công cụ để đóng gói ứng dụng
-
Docker Hub : là một “github for docker images”. Trên DockerHub có hàng ngàn public images được tạo bởi cộng đồng cho phép bạn dễ dàng tìm thấy những image mà bạn cần. Và chỉ cần pull về và sử dụng với một số config mà bạn mong muốn.
-
Images: là một khuôn mẫu để tạo một container. Thường thì image sẽ dựa trên 1 image có sẵn với những tùy chỉnh thêm. Ví dụ bạn build 1 image dựa trên image Centos mẫu có sẵn để chạy Nginx và những tùy chỉnh, cấu hình để ứng dụng web của bạn có thể chạy được. Bạn có thể tự build một image riêng cho mình hoặc sử dụng những image được chia sẽ từ cộng đồng Docker Hub. Một image sẽ được build dựa trên những chỉ dẫn của Dockerfile.
-
Container: là một instance của một image. Bạn có thể create, start, stop, move or delete container dựa trên Docker API hoặc Docker CLI.
-
Docker Client: là một công cụ giúp người dùng giao tiếp với Docker host.
-
Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý các đối tượng như Container, Image, Network và Volumes thông qua REST API. Các Docker Daemon cũng giao tiếp với nhau để quản lý các Docker Service.
-
Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một image .
-
Volumes: là phần dữ liệu được tạo ra khi container được khởi tạo.
-
Docker Client: là cách mà bạn tương tác với docker thông qua command trong terminal. Docker Client sẽ sử dụng API gửi lệnh tới Docker Daemon.
-
Docker Daemon: là server Docker cho yêu cầu từ Docker API. Nó quản lý images, containers, networks và volume.
-
Docker Volumes: là cách tốt nhất để lưu trữ dữ liệu liên tục cho việc sử dụng và tạo apps.
-
Docker Registry: là nơi lưu trữ riêng của Docker Images. Images được push vào registry và client sẽ pull images từ registry. Có thể sử dụng registry của riêng bạn hoặc registry của nhà cung cấp như : AWS, Google Cloud, Microsoft Azure.
-
Docker Hub: là Registry lớn nhất của Docker Images ( mặc định). Có thể tìm thấy images và lưu trữ images của riêng bạn trên Docker Hub ( miễn phí).
-
Docker Repository: là tập hợp các Docker Images cùng tên nhưng khác tags. VD: golang:1.11-alpine.
-
Docker Networking: cho phép kết nối các container lại với nhau. Kết nối này có thể trên 1 host hoặc nhiều host.
-
Docker Compose: là công cụ cho phép run app với nhiều Docker containers 1 cách dễ dàng hơn. Docker Compose cho phép bạn config các command trong file docker-compose.yml để sử dụng lại. Có sẵn khi cài Docker.
-
Docker Swarm: để phối hợp triển khai container.
-
Docker Services: là các containers trong production. 1 service chỉ run 1 image nhưng nó mã hoá cách thức để run image — sử dụng port nào, bao nhiêu bản sao container run để service có hiệu năng cần thiết và ngay lập tức.
-
Delete all image hiện có:
-
List all container hiện có:
-
Run container từ image và thay đổi tên container:
-
Delete all container hiện có:
-
Build một image từ container:
-
Tạo một container chạy ngầm:
-
Tải một image trên docker hub: