Docker - những kiến thức cơ bản phần 3



  • Giới thiệu

    [5. Docker Hub là gì? Làm thế nào để tạo một Docker Image trên Docker Hub?]

    [6. Các câu lệnh thường dùng để thao tác với docker image?]

    [7. Các câu lệnh thường dùng để thao tác với docker container?]

    [8. Sự khác biệt giữa câu lệnh docker exec và docker run?]

    [9. Sự khác biệt giữa câu lệnh docker run và docker start?]

    Phần trước: Chúng ta đã tìm hiểu về docker hub (create, push, pull images) cũng như biết thêm các lệnh thường dùng để thao tác docker image, docker container, phân biệt được câu lệnh docker exec, docker run và docker start...Ở phần này cùng tìm hiểu các khái niệm khá là quan trọng, và áp dụng rất nhiều vào các dự án thực tế của docker.

    Mục lục

    1. Thế nào là Docker Volume? Tại sao ta lại cần Docker Volume? Ta dùng Docker Volume khi nào?

    2. Docker Compose là gì? Ví dụ về docker compose

    3. Các câu lệnh thường dùng với docker-compose

    4. Docker Network là gì? Có những kiểu Docker Network mặc định nào?

    5. Docker Swam là gì? Một vài câu lệnh cơ bản của Docker Swarm

    Nội dung

    10. Thế nào là Docker Volume? Tại sao ta lại cần Docker Volume? Ta dùng Docker Volume khi nào?

    Thế nào là Docker Volume?

    Volume trong Docker được dùng để chia sẻ dữ liệu cho container.

    Tại sao ta lại cần Docker Volume?

    • Volumes giản hóa việc backup hoặc migrate hơn bind mount.
    • Bạn có thể quản lý volumes sử dụng các lệnh Docker CLI và Docker API.
    • Volumes làm việc được trên cả Linux và Windows container.
    • Volumes có thể an toàn hơn khi chia sẻ dữ liệu giữa nhiều container.
    • Volume drivers cho phép bạn lưu trữ volumes trên remote hosts or cloud providers, để mã hóa nội dung của volumes, hoặc thêm các chức năng khác.
    • Các nội dung của volume mới có thể được điền trước bởi một container.

    Ta dùng Docker Volume khi nào?

    • Sử dụng volume để gắn (mount) một thư mục nào đó trong host với container.
    • Sử dụng volume để chia sẻ dữ liệu giữa host và container
    • Sử dụng volume để chia sẽ dữ liệu giữa các container
    • Backup và Restore volume.

    Để xem cách tạo và quản lý Docker Volume: https://docs.docker.com/storage/volumes/#populate-a-volume-using-a-container

    11. Docker Compose là gì?

    Compose là công cụ giúp định nghĩa và khởi chạy multi-container Docker applications.

    Trong Compose, chúng ta sử dụng Compose file để cấu hình application's services. Chỉ với một câu lệnh, lập trình viên có thể dễ dàng create và start toàn bộ các services phục vụ cho việc chạy ứng dụng.

    12. Các câu lệnh thường dùng với docker-compose

    Cú pháp:

    $ docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
    $ docker-compose -h|--help
    

    Một số câu lệnh thường dùng:

    • Kiểm tra phiên bản docker-compose:
    $ docker-compose version
    
    docker-compose version 1.8.0, build unknown
    docker-py version: 1.9.0
    CPython version: 2.7.12
    OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
    
    • Hiển thị danh sách containers:
    $ docker-compose ps
    
                  Name                             Command               State    Ports
    -----------------------------------------------------------------------------------
    dockercompose01_product-service_1   python api.py                    Exit 1
    dockercompose01_website_1           docker-php-entrypoint apac ...   Exit 0
    
    docker-compose version 1.8.0, build unknown
    docker-py version: 1.9.0
    CPython version: 2.7.12
    OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
    
    • Tạo và khởi động containers:
    $ docker-compose up
    
    • Build hoặc rebuild services
    $ docker-compose build
    
    Step 1/3 : FROM python:3-onbuild
    # Executing 3 build triggers
     ---> Using cache
     ---> Using cache
     ---> Using cache
     ---> 4de6e4065f4b
    Step 2/3 : COPY . /usr/src/app
     ---> Using cache
     ---> edf44389cbf5
    Step 3/3 : CMD ["python", "api.py"]
     ---> Using cache
     ---> a6d6dba4ebbc
    Successfully built a6d6dba4ebbc
    Successfully tagged dockercompose01_product-service:latest
    website uses an image, skipping
    
    • Xác nhận hoặc hiển thị file config Compose
    $ docker-compose config
    
    • Loại bỏ, ngừng containers:
    $ docker-compose rm
    
    Going to remove dockercompose01_website_1, dockercompose01_product-service_1
    Are you sure? [yN] y
    Removing dockercompose01_website_1 ... done
    Removing dockercompose01_product-service_1 ... done
    

    Tham khảo chi tiết tại đây: https://docs.docker.com/compose/reference/overview

    13. Docker Network là gì? Có những kiểu Docker Network mặc định nào?

    Docker Network là gì?

    Docker network dùng để gắn địa chỉ ip cho các container thông qua một virtual bridge.

    Có những kiểu Docker Network mặc định nào?

    Sau khi cài đặt xong docker, có 3 loại network tự động sẽ được tạo ra, sử dụng câu lệnh để kiểm tra:

    $ docker network ls
    NETWORK ID          NAME                      DRIVER              SCOPE
    04df50d130ed        bridge                    bridge              local
    e5275b314ff1        host                      host                local
    006951b13154        none                      null                local
    
    • Bridge: Network driver mặc đinh. Nếu bạn không chỉ định một driver, đây sẽ là một loại của network mà bạn đang tạo. Bridge Networks thường được sử dụng khi ứng dụng của bạn chạy trong các container độc lập mà chúng cần để giao tiếp, truy cập: https://docs.docker.com/network/bridge để xem chi tiết hơn về Bridge Networks.
    • Host: Với các containers độc lập, xóa network cô lập giữa container và docker host , và sử dụng host's network trực tiếp. Host chỉ có trên swarm services phiên bản Docker 17.06 và cao hơn. Xem cách sử dụng của host network: https://docs.docker.com/network/host.
    • None: Với chính container, ngắt kết nối tất cả các netwoking. Thường sử dụng trong kết hợp với một tùy chỉnh network driver. None cũng chỉ có trên swarm services. Chi tiết về none có tại: https://docs.docker.com/network/none/.

    14. Docker Swam là gì?

    Docker Swam là gì?

    Docker swarm là một công cụ giúp chúng ta tạo ra một clustering Docker. Nó giúp chúng ta gom nhiều Docker Engine lại với nhau và ta có thể "nhìn" nó như duy nhất một virtual Docker Engine.

    Khi số lượng containers tăng lên việc quản lý, triển khai trở nên phức tạp hơn thì không thể không sử dụng Docker Swarm.

    Một vài câu lệnh cơ bản của Docker Swarm

    • docker swarm ca: Hiển thị và xoay root CA

    • docker swarm init: Khởi tạo một swarm

    • docker swarm join: Gia nhập một swarm

    • docker swarm join-token: Quản lý join tokens

    • docker swarm leave: Rời khỏi swarm

    • docker swarm unlock: Unlock swarm

    • docker swarm unlock-key: Quản lý unlock key

    • docker swarm update: Cập nhật swarm

    Tham khảo chi tiết tại đây: https://docs.docker.com/engine/reference/commandline/swarm

    Lời kết

    Trong phần 3 này cơ bản chúng ta đã hiểu sơ qua về Docker colume, docker compose, docker network và docker swarm...Tuy nhiên, việc áp dụng chúng vào các dự án là không hề đơn giản, cần nhiều thời gian tìm hiểu cũng như kinh nghiệm nữa. Mong được sự góp ý từ mọi người, hãy quan tâm và theo dõi series [2018 - Cùng nhau học Docker] nhé 😜😜😜

    Nguồn:

    https://www.docker.com/

    https://hub.docker.com/

    https://vi.wikipedia.org/wiki/Docker_(phần_mềm)
    Nguồn: Viblo



Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.