DOCKER? DỄ ẤY MÀ #1 | CƠ BẢN | TodayILearned

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ธ.ค. 2024

ความคิดเห็น • 77

  •  ปีที่แล้ว

    Nhanh gọn, straight to the point, mình thích :))

  • @tuanhungluong5155
    @tuanhungluong5155 4 ปีที่แล้ว +1

    mạnh dạn đề xuất ông Dev làm thêm video về docker

  • @howtoprogram5909
    @howtoprogram5909 3 ปีที่แล้ว +3

    Anh ơi video sau anh tăng âm video lên nhé, cảm ơn anh về video rất bổ ích

  •  4 ปีที่แล้ว +3

    hay đấy ông 1 thế lực mới trong Vlog IT Việt :)))

  • @phamat5571
    @phamat5571 4 ปีที่แล้ว +2

    Thank ông Dev nhé. Rất dễ hiểu

  • @tonchoithethao9665
    @tonchoithethao9665 3 ปีที่แล้ว +1

    Cám ơn anh nhe. Rất dễ hiểu

  • @r4pt0r20
    @r4pt0r20 4 ปีที่แล้ว +2

    Hay quá a, mà mấy video sau a zoom code to hơn được ko, hơi nhỏ a ơi

  • @ngocducgis
    @ngocducgis 5 ปีที่แล้ว +1

    Great stuff, thanks bạn 👏

  • @PhongNguyen-tp7lg
    @PhongNguyen-tp7lg 3 ปีที่แล้ว

    thanks,, dễ hiểu cho newbie

  • @_coolbom
    @_coolbom 3 ปีที่แล้ว +1

    Em chào anh ạ. Cho em hỏi là ở đoạn dùng .Dockerignore, anh không gửi folder Node_modules lên thì sao code vẫn chạy được ạ ? Nó lấy các modules ở đâu vậy ạ ?

    •  3 ปีที่แล้ว +1

      Vì đó là thư mục thư viện thôi, nên mình để khi nào nó build image nó sẽ run npm install sau, vì folder node modules nó rất là nặng, nên nếu send zô nó sẽ bị chậm ấy vì nó sẽ ko đc cache.

  • @NTC11111
    @NTC11111 5 ปีที่แล้ว +3

    Ông dev có thể làm 1 vài video về Multi-Thread và Async trong C# được hông nhỉ

    •  5 ปีที่แล้ว +1

      Ok nhé :D

  • @minhhieple6483
    @minhhieple6483 4 ปีที่แล้ว +2

    anh cho em hỏi tại sao khi cài môi trường ở nhiều tutorial họ không cài node không mà họ thường cài cùng với một bản phân phối của linux vậy ạ, ví dụ như node-alpine3.10 ....thank anh nhiều.

    •  4 ปีที่แล้ว +5

      Thực ra những cái image node alpine là bản nhỏ gọn của node, nó sẽ có ít dependencies hơn, cũng như được tích hợp ít library mặc định hơn. Nên cơ bản node alpine nó sẽ nhỏ gọn hơn, nhanh hơn, bảo mật hơn(ít sự phụ thuộc).
      Và bản chất trong cái image node luôn có linux nha, node không thì nó sẽ là debian(mình không nhớ lắm), nhưng chắc chắn là luôn có linux ở bên dưới nha.
      Node thì nó luôn cần một cái OS chạy bên dưới, chứ một mình nó cũng chả làm đc gì, nên khi người ta tạo ra image node thì họ đã cho môi trường OS vào sẵn rồi.

    • @minhhieple6483
      @minhhieple6483 4 ปีที่แล้ว

      @ thank anh em hiểu r.

  • @AnhNgoc-mw9cf
    @AnhNgoc-mw9cf 3 ปีที่แล้ว

    rat hay va de hieu a oi

  • @PhucHoang-qw8hg
    @PhucHoang-qw8hg 4 ปีที่แล้ว +1

    Trường hợp gửi code lên git để docker reload lại code thì làm sao a nhỉ. Với trường hợp mua vps về dùng sao được docker a

    •  4 ปีที่แล้ว +2

      Cái này có thể dùng một CI tool ví dụ như là CircleCI, mỗi lần push lên git thì CI nó sẽ tạo ra 1 image mới, sau đó ssh đến vps, rồi run cái image đó. Những thứ dính líu đến data có thể dùng volume, cái container cũ thì stop xong remove nó đi, rồi run bằng cái image mới, volume tới đúng folder data đang sử dụng.

    • @PhucHoang-qw8hg
      @PhucHoang-qw8hg 4 ปีที่แล้ว

      @ tks a

  • @vuhoang2131
    @vuhoang2131 3 ปีที่แล้ว

    hè lô ông dev

  • @ienngongoc3209
    @ienngongoc3209 3 ปีที่แล้ว +1

    tại sao mình k copy tất cả folder 1 lần luôn vậy anh, mà phải copy package*.json, install rồi mới copy hết vậy anh

    •  3 ปีที่แล้ว +2

      Vì có cái gọi là caching layer á e, a copy mỗi package json, install, thì đồng node module sẽ đc cache lại, nếu lần build sau, a ko thay đổi package json thì nó sẽ lấy caid node module trong cache của a, nó khiến build lẹ hơn á

    • @ienngongoc3209
      @ienngongoc3209 3 ปีที่แล้ว

      @ dạ, em cảm ơn anh nhé

  • @12a4tv
    @12a4tv 4 ปีที่แล้ว +1

    bây giờ người ta có dùng docker để run product không anh

    •  4 ปีที่แล้ว

      Giờ prod người ta chỉ toàn dùng docker thôi :D những ứng dụng lớn thì sẽ dùng k8s + docker

  • @nhatacoustic3633
    @nhatacoustic3633 4 ปีที่แล้ว

    em viết terminal trong visual mà không tạo ra các file như anh, làm thế nào để làm được như anh 6:05

    •  4 ปีที่แล้ว +1

      Nhật Acoustic cái command touch nó chỉ có ở bên mac thôi nha, bên windows e có thể dùng echo >> file.blah để tạo file

    • @nhatacoustic3633
      @nhatacoustic3633 4 ปีที่แล้ว

      @ dạ em xài Mac mà làm chưa được

    • @nhatacoustic3633
      @nhatacoustic3633 4 ปีที่แล้ว

      @ em làm được rồi thanks anh

  • @izclubcom
    @izclubcom 4 ปีที่แล้ว +1

    làm video về docker-sync đi bạn :)

  • @hieule1022
    @hieule1022 4 ปีที่แล้ว +1

    a có thể ra video hướng dẫn auto build bằng docker + CI/CD gitlab lên server ko a. thank a!

    •  4 ปีที่แล้ว +4

      Anh sẽ có video về CI/CD nhưng dùng CircleCi thay vì Gitlab nha

    • @quanghieutruong272
      @quanghieutruong272 4 ปีที่แล้ว

      mong ngóng từng ngày ​ Ông Dev ra video

  • @thiquang37
    @thiquang37 ปีที่แล้ว

    Em cảm ơn anh nhiều

  • @musiclove2109
    @musiclove2109 4 ปีที่แล้ว

    a cho ehỏi với ạ, bây giờ e có 1 ứng dụng chạy trên docker container, khi ứng dụng này chạy xong tạo ra 1 file abc.mp4, giờ e muốn tải về máy local thì làm như thế nào ạ

    •  4 ปีที่แล้ว +1

      Cái này cũng có nhiều cách, 1 là em volume cái folder mà em lưu ở trong docker container với 1 folder trên máy local của e.
      Hoặc là em dùng lệnh copy của docker:
      docker cp :/file/path/within/container /host/path/target

  • @HieuTran-od9zn
    @HieuTran-od9zn 4 ปีที่แล้ว

    Có thể nói rõ hơn cho em về cái WORKDIR được ko anh?

    •  4 ปีที่แล้ว +1

      WORKDIR giống như kiểu em chỉ ra cái địa chỉ để người ta ship hàng tới vậy :D
      Nếu không họ sẽ gửi tới bưu cục :D
      Tất cả những command kiểu RUN, CMD nó sẽ được thực thi tại WORKDIR.

  • @NhatNguyen-yz5tm
    @NhatNguyen-yz5tm 4 ปีที่แล้ว

    docker ps có phải là lệnh mở registry của docker đúng không ông dev?

    •  4 ปีที่แล้ว +1

      Docker ps là show list của containers thôi bạn.

    • @NhatNguyen-yz5tm
      @NhatNguyen-yz5tm 4 ปีที่แล้ว

      Ông Dev thanks anh

  • @mindset5228
    @mindset5228 4 ปีที่แล้ว

    Em đã động đến ubutun và phải dùng docker

  • @schoolXedu
    @schoolXedu 4 ปีที่แล้ว

    hay quá a ơi

  • @CuongNGUYEN-is8rf
    @CuongNGUYEN-is8rf 4 ปีที่แล้ว

    Vẫn ko biết sao hypervisor lại có host OS. Đâu ra vậy ko biết.

    •  4 ปีที่แล้ว

      Cường NGUYỄN trong video mình có nói hypervisor có hostOS đâu nhỉ, nó để connect xuống hostos và infra mà.

    • @CuongNGUYEN-is8rf
      @CuongNGUYEN-is8rf 4 ปีที่แล้ว +1

      Ông Dev thời buổi nào rồi còn connect xuống host os nữa. Giờ hypervisor nó thành platform luôn rồi. Nó là os luôn rồi. Suy ra cùng cũng chưa biết thằng nào performance tốt hơn thằng nào.

    •  4 ปีที่แล้ว +1

      Cường NGUYỄN uh, mình nhầm ở đoạn connect xuống hostos, vì bản thân nó cũng có những features của 1 os, nhưng đơn giản hơn để làm việc với hardware. Hmm, thực ra không có nhiều sự khác biệt giữa 1 os và hypervisor. Tụi nó cũng chỉ là cái software để điều khiển infra thôi. Nhưng nếu so sánh performance thì đối với mình, app trong docker không nhanh hơn app trong VM, nhưng sử dụng docker nó hiểu quả hơn khi nó tốn ít resource hơn so vs VM(chả cần phải assign memory cho container trước khi chạy). Nhưng bù lại thì VM nó lại cung cấp đầy đủ feature của OS. Nên để quyết định sử dụng cái nào trong project thì còn tuỳ thuộc vào thiết kế và yêu cầu của app.

  • @vantoanmai5670
    @vantoanmai5670 3 ปีที่แล้ว

    Hi ông dev, mình build khi "switch to Linux containers" thì nó chạy, còn khi switch to Windows containers thì build bị lỗi. Ông dev chỉ cách khắc phục với.

    •  3 ปีที่แล้ว

      Cái đó phải xem nó lỗi gì thì mới biết được bạn ơi

    • @vantoanmai5670
      @vantoanmai5670 3 ปีที่แล้ว

      Nó bị lỗi ở step 2 đó ​ @Ông Dev .
      PS E:\DockerWorkSpace\FIRST-DEMO> docker build -t my-node-app:v0.0.1 .
      Sending build context to Docker daemon 19.97kB
      Step 1/7 : FROM node:14
      14: Pulling from library/node
      1e987daa2432: Pull complete
      a0edb687a3da: Pull complete
      6891892cc2ec: Pull complete
      684eb726ddc5: Pull complete
      b0af097f0da6: Pull complete
      154aee36a7da: Pull complete
      769e77dee537: Pull complete
      44a6ee72a664: Pull complete
      f374f834ba21: Pull complete
      Digest: sha256:fa48e06848cb619c3dcc6a9c34b13473c89c0ef52b16d275a7ad3d3aef656fd3
      Status: Downloaded newer image for node:14
      ---> 7bef16bb2cf1
      Step 2/7 : WORKDIR /usr/src/app
      ---> [Warning] The requested image's platform (linux/amd64) does not match the detected h ---> Running in 7c4254d68819
      Removing intermediate container 7c4254d68819
      ---> b5afd0ef17ae
      ---> e5d30b30de42
      Step 4/7 : RUN npm install
      ---> [Warning] The requested image's platform (linux/amd64) does not match the detected h ---> Running in 6d8524bcbe28
      npm WARN first-demo@1.0.0 No description
      npm WARN first-demo@1.0.0 No repository field.

    •  3 ปีที่แล้ว

      @@vantoanmai5670 à em coi lỗi kìa, em chạy windows container, thì khi run build á, em phải set cái platform nó mới work :v
      Hoặc là cái image em kéo về nó không tương thích với windows container.

  • @nguyenhoa7759
    @nguyenhoa7759 4 ปีที่แล้ว

    Thanks anh 👍👍

  • @tech.talk69
    @tech.talk69 5 ปีที่แล้ว

    anh cho em hỏi win 10 chạy docker đc không anh.

    •  5 ปีที่แล้ว +1

      Windows 10 thì dễ dàng chạy docker hơn bằng Docker Desktop. Còn những bản windows cũ hơn em phải xài Docker Toolbox.

    • @tech.talk69
      @tech.talk69 5 ปีที่แล้ว

      @ thanks anh nha !!!

    • @congthanghuynh5908
      @congthanghuynh5908 5 ปีที่แล้ว

      @ cho e hỏi docker desktop làm sao mở lên cái giao diện ạ e nhấn mà n ko mở dc

    •  5 ปีที่แล้ว

      Nó chỉ có cái setting là có GUI thôi còn lại thì mình dùng command hết.

    • @congthanghuynh5908
      @congthanghuynh5908 5 ปีที่แล้ว

      @ dạ thanks ad

  • @hungnm1208
    @hungnm1208 4 ปีที่แล้ว

    great, thank pro

  • @manhngo2724
    @manhngo2724 4 ปีที่แล้ว

    Thank u bro.

  • @baudeejay8592
    @baudeejay8592 3 ปีที่แล้ว

    Thanks guy

  • @toannc90
    @toannc90 4 ปีที่แล้ว

    Có tinh thần cống hiến, nhưng đọc nhiều từ hơi kì "Image"?
    Tiện thể, chủ bài nói "OK, ok, Ok" nhiều quá

  • @Andy-wv2xj
    @Andy-wv2xj 4 ปีที่แล้ว

    ông dev nhớ luyện thêm tiếng anh nha.

  • @Mainguyenish
    @Mainguyenish 4 ปีที่แล้ว

    ngon

  • @kj1304
    @kj1304 2 ปีที่แล้ว

    video nói hơi nhỏ, quảng cáo mà chạy lên thì hỏng tai

    •  2 ปีที่แล้ว +1

      Cảm ơn bạn đã góp ý. Mình vừa tắt qc giữa video rồi. Đây là kênh mình xót qc giữa video trong video này, chứ còn những video khác sẽ không có qc ở giữa nha

    • @kj1304
      @kj1304 2 ปีที่แล้ว

      @ dạ, quảng cáo thì hông sao mà video tiếng hơi nhỏ thôi

  • @haile1512
    @haile1512 3 ปีที่แล้ว

    Sr nhưng bác cố gắng giải thích quá nhiều thuật ngữ, đâm ra khá khó hiểu. Cách bác giải thích ko phổ biến được, đúng chỉ những ông nào đã làm qua, đã hiểu sơ, hoặc là dân dev mới hiểu. Nhưng thanks !

    •  3 ปีที่แล้ว

      Đúng rồi bạn, vì đối tượng của docker là dev hoặc là devops mà, và khi đã là dev và devops là họ đã có những kiến thức cơ bản rồi, chứ ko có ai tay ngang vào đùng phát học docker đâu :v
      Cơ mà cũng cảm ơn bạn đã góp ý nha.

  • @issdsds1
    @issdsds1 3 ปีที่แล้ว

    Em build gặp lỗi này "too many levels of symbolic links".,đến dòng WORKDIR /usr/src/app thì nó văng ra lỗi. Anh gặp trường hợp này chưa ạ

    •  3 ปีที่แล้ว +1

      Chưa gặp bao giờ luôn, nhưng a nghĩ cái này chắc do lỗi cài đặt @@ github.com/drud/ddev/issues/2227 e check thử

    • @issdsds1
      @issdsds1 3 ปีที่แล้ว

      @ Em tìm được lỗi rồi cám ơn anh

  • @tringuyencaothien2412
    @tringuyencaothien2412 3 ปีที่แล้ว

    phút thứ 10 tại sao lại copy file package*.json vào workDIR trong khi mình sài copy .. để copy toàn bộ source code của mình lên workdir vậy bạn làm vậy có bị dư không mong bạn giải đáp

    •  3 ปีที่แล้ว +2

      Trong docker có 1 cái gọi là layers catching, mình làm như này là để kiểu tách các bước build docker image ra, khi đó những thằng không bị thay đổi nó sẽ không tốn thời gian build trong lần build sau, điển hình như node modules folder là rất lớn, nên mình cần tận dụng cache. Cơ bản là chia việc build image ra nhiều bước khác nhau, thì những bước không có thay đổi, nó sẽ bỏ qua.