Cài đặt docker và run container đầu tiên nào >”<

Cài đặt docker

  • Ta mở terminal lên nào cùng gõ bash shell 😀
  • 1 dòng bash shell thôi dễ vl :D, trong đó nó viết cái mô tê gì thì mình cũng chỉ biết sơ, ai muốn biết cứ vào link đó mà get text ra rồi đọc, lòi le nha.
    #curl -fsSL https://get.docker.com/ | sh
  • Cài đặt xong gõ #docker ps, nếu nó hiện như thế này nghĩa là ta cài đặt thành công.

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Run container

  • Trước tiên ta tạo 1 container
    #docker run -itd –name=container1 ubuntu:14.04 bash

    • Dòng lệnh này có ý nghĩa là run một container có tên là container1 dùng image để tạo container là ubuntu có version là 14.04, cờ -it để hiện thị in và out khi gõ command line và chữ cuối cùng là bash là câu lệnh thực thi khi container được run.
    • Do ban đầu ta chưa có image ubuntu nên docker sẽ tự pull image này về.
  • Ta tiếp tục tạo 1 container khác
    #docker run -itd –name=container2 ubuntu:14.04 bash

    • Container này được run nhanh hơn vì image ubuntu đã được pull về lúc tạo container1.
  • Bây giờ ta có 2 container rồi nhé. Tiếp tục ta xem các container đang chạy bằng lệnh sau.
    #docker ps

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    59c69f4dbf8d        ubuntu:14.04        “bash”              3 seconds ago       Up 3 seconds                            container2
    3acfbd389b1c        ubuntu:14.04        “bash”              28 seconds ago      Up 28 seconds                           container1

  • 2 container nó run như vậy rồi sao vào bash shell của từng con container để execute đây ta :P. Ta đến câu lệnh tiếp theo để execute vào bash của những container đang run như thế này.
    #docker exec -it container1 bash
    Câu lệnh ở trên được dùng để exec vào container1
    Từ shell container1 gõ

    root@3acfbd389b1c:/# ip a
    ——-
      inet 172.17.0.2/16 scope global eth0
    ——-
    => ip container1 là 172.17.0.2 nó hiện rất nhiều mình xin được rút gọn lại như thế này.
    Thoát khỏi container1
    root@3acfbd389b1c:/# exit

    Rồi bây giờ lại exec vào container2
    #docker exec -it container2 bash
    root@59c69f4dbf8d:/# ip a
    —–
    inet 172.17.0.3/16 scope global eth0
    —–
    => container2 có ip 172.17.0.3
    Từ shell container2 ta có thể ping đến container1. bằng

    root@59c69f4dbf8d:/# ping 172.17.0.2
    PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
    64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.658 ms
    64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.105 ms
    64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.112 ms

  • Tới đây là những bạn có kiến thức cơ bản về system có thể vọc tiếp được rồi đấy. Ta có thể cài các service trên container này và coi nó như là một server hoặc một vps. Lưu ý phải apt update trước nha.
  • Ví dụ bây giờ mình cài thử nginx lên xem nào :D. Mình đang ở trong container2 nha.

    root@59c69f4dbf8d:/# apt update && apt install nginx curl -y
    root@59c69f4dbf8d:/# service nginx start
    Với bạn nào làm lab ngay trên laptop cài linux thì có thể vào browser để vào ip của container gõ http://172.17.0.3 <ip container mà bạn đã cài nginx> thì có thể hiển thị được trang web của nginx default, còn ai làm trên vps hay server gì đó thì chịu khó ngồi cơ đi  #curl http://172.17.0.3

    Có thêm thời gian mình sẽ tranh thủ làm video để cho các bạn dễ theo dõi. Mình cũng ráng chia sẻ trong khoảng thời gian buổi tối sau khi làm việc. Mong mọi người ủng hộ và comment những sai sót để mình có thể tiếp tục đóng góp cho cộng đồng những bài viết hay hơn dễ hiểu hơn.

    Kết thúc

    Bài tiếp theo mình sẽ hướng dẫn các bạn làm sao để up một source(một file hoặc cả một thư mục) vào container và volumes từ bên ngoài máy local vô trong container như thế nào. Ta sẽ làm một ví dụ với một trang web chạy php. Mình cài apache cho tiện sử dụng.

    Các bạn copy nhớ ghi rõ nguồn của https://hocitvn.com giúp mình.

Leave a reply:

Your email address will not be published.

Site Footer