Docker[101] [2] Introduction

05 Sep 2020

Docker[101] [2] Introduction

Để bắt đầu thì chúng ta cùng chốt ra khung để học, khung mà mình cho là chuẩn nhất cho tất cả mọi người. Chia nhỏ thành các đối tượng và rồi phân tích sâu hơn vào các phần nhỏ. Mình sẽ không nhét tất cả từ khóa vào một hai bài để tránh làm anh em ngộp.

Big Picture:

Rồi, Ví dụ và Luồng sử dụng.

Cảnh một, sếp bạn bảo bạn: – Em, tình hình là hệ thống quản trị của công ty thuê ngoài tốn tiền thật sự, em xem thế nào deploy con redmine lên chúng mình dùng thử, em nhở.

hiểu sâu xa ra là sếp bạn thấy bạn rảnh quá nên muốn bạn làm thử con môi trường mới tiện thể kiếm thêm đồ vào hệ thống công ty. Đại khái là nếu không ngon thì bạn đi mà xóa, xong cũng chả biết sau cái này sẽ là bao cái nữa đâu, cố gắng em nhé

RỒI, sau khi ngồi suy tính như một con tinh tinh trưởng thành có não và lười biếng bạn quyết định tìm một phương pháp hoàn thiện hơn cho tất cả những vấn đề bây giờ có thể tiếp diễn về sau. Nên bạn tìm đến Docker, tự nhiên như cách mà người yêu cũ của bạn tìm đến bạn mỗi khi say rượu vậy.

Và thế là bạn cài Docker.

Docker và những vấn đề liên quan tốc độ.

Docker là container, sẽ có nhiều container nhỏ ở trên một tàu mẹ, tàu mẹ chính là OS của bạn. Có nghĩa là, nếu ứng dụng bạn chạy là Linux thì sẽ phải chạy trên kernel Linux, ngược lại container Windows buộc phải chạy trên nền Windows như là lẽ dĩ nhiên.

Nhìn tổng quan ra thì!

Có nghĩa là nếu container Linux chạy trên máy Linux sẽ là nhanh nhất vì không cần chạy qua bất kì máy ảo nào, tất cả mọi thứ tồn tại trực tiếp trong Host Linux. Hiển nhiên dẫn tới việc khuyến khích các bạn dùng Linux cho nó ngon. Tất nhiên thì nếu bạn chạy .net core hay gì đấy thì Windows là bắt buộc.

Vậy thì có bao nhiêu cách cài Docker??? 3 cách phụ thuộc vào môi trường hệ thống của bạn!

OK, Cài Docker.

Mình sẽ mặc định Cài trên Ubuntu nhá. Xóa các phiên bản cũ, ừ nếu bạn là người không biết gì thì cứ làm cho chắc.

sudo apt-get remove docker docker-engine docker.io containerd runc

Tiếp đó chúng ta sẽ update các package từ các nguồn trong máy, ừ để làm nền trong trường hợp máy bạn chưa hề load package lần nào thôi.

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

Tiếp theo là an toàn đường truyền và định danh Package bằng GPG key. Lệnh dưới đây dùng curl để truy xuất lấy key rồi pipeline key này add thêm vào kho lưu trữ key định danh của nguồn apt.


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Tiếp theo là check xem cho chắc, nếu thấy đúng “9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88” thì là ok.


sudo apt-key fingerprint 0EBFCD88

Và giờ thêm nguồn của docker vào quản lý package của máy, Cái này là dành cho dòng chip x86-64/amd64, đại khái là dành cho máy desktop cơ bản chip intel và amd 64 bit. Ngoài ra còn có các phiên bản cho chip arm hay các máy bé tí kiểu raspberry. cái đấy thì vào web docker nhé các bạn nhỏ.

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

RỒI TỚI ĐÂY LÀ XONG VIỆC KIỂM TRA VÀ LÀM NÊN CHO CÀI ĐẶT.

Update lại package do chúng ta mới add thêm ở trên sau đó cài bản docker-ce (vì bạn nghèo). Còn containerd là đại khái runtime tương tác quản lý với container, nó nằm giữa layer container và OS.

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

test

sudo docker run hello-world

helloword chưa, rồi là xong rồi, máy bạn đã được cài docker.

Giờ thì để rảnh tay, chắc các bạn ít người muốn liên tục gõ sudo để truy cập docker đâu, mệt lắm. vì vậy chúng ta sẽ add user của bạn vào Group để control trực tiếp docker.

whoami #lấy tên user
sudo usermod -aG docker <user>

Sau đó bạn có thể gõ Docker không cần sudo. À nếu mà truy cập server qua SSH thì log lại nhá. Rồi. Cài con redmine cho sếp.

docker run -p 8080:3000 -d --name some-redmine redmine

Rồi kết quả.

Nếu các bạn chạy lệnh “docker ps” sẽ nhìn thấy thông tin container vừa khởi chạy.

XONGGGGG. Bài 1



/sw-load.js?v=e5ae5a1ed170f4499ac6292e7164b68528c51f6d6518cd75a49e6a6b737831d5728da21fc14dcbc7a91328e53858c6ff7195cc3fc8b25f0feeaef2af151d6686 /fireball.gif?v=569e393374f2af74d6c575090904aaf51e641e5eb5ea89ae7c7de01f7293abc165b3a7e8685690a8b951c778603fec98ae6822ff2f7ea86a536776966cb65d5d /favicon.ico?v=1a6495bbd14c74c75aa77e28420ce82a63372b28cd38c952b98403d8d112a9f76589bea299982ca27048215e661245f9d07294bddee7da377aaee76eee70c622 /favicon-16x16.png?v=7267c6f502a03c1e4df9d8136dcc6cd9e67e0b9644941d22ed34e4fe747580f95a65f77a183bb967c1ec60eecd0c298b2670d89a67a647391fb7d1501bcf0982 /favicon-32x32.png?v=5e23bffe691055b88067cbc8d11b96ce2a8dc5e25e49367803766a3cadbcfc7f05a62079bfa558d5e234c6a7455d21fc2960b196bda5cbd591bd4c2dbe67920d /icon-192x192.png?v=3820c1b1e6d755d2b7c2a04a65f0f1feef793b297f7ee995947137ccd8f73ec304457f6ce1df987a9a0a13ed7dacd203225505b832ccd2318b530ae53a55cebc /icon-512x512.png?v=de62ae905479fd813300d286ed1d2fe6bb6f6292623a5d918691642f6dd09a68943c69ed2a95a1820076919e69ff4fda668bb79e610ebc1d3200fedd7f634443 /apple-touch-icon.png?v=4718a090c66653794b3622234784e821a504ee526b6518f20cd10f6b27907566690892339830ede2ef9cb5fedb8a9796f02fb2610de868500c0720c1083013b7 /main.css?v=deafe9327da907780e2167b0c4b65cbafc26273324db10789fa06d4d9c2afced3cf2b5cb42a280190f42fc741f8a9c49bc830f0deb686be6acf12c3b0dbea86e /nerd-fonts.css?v=4b2ec75c55a664da78189dc20d4017cf5bc817cf3b60218a2446ba269ca4fd42c117352d5276363965f35fae32891efce751e0626b5281bae627f40d804a5679 /unstyle.css?v=b14bd48a2efbd463d973763aa3184c69aa02164c0891acacc9eab49ddd275f98f0050b4c31d2093e4671e7abe04f9459a041f0064384a90d97b8ff21b6824825 /langs.css?v=12474958ee314a9fde4704e1f5a032dc632d41f9461faca326ac284297766c4ceb07b45fec7fbc09fa72b0f21dcc64f0c31e64fc2e5e838b1d30f5fe540afd78 /syntax-theme-light.css?v=ccdddc2d2d88953c6d7d0376777b8409028ef625a7321dfa41619547b4f5eddbe89aa95ff5e7e2620da0ea13fbabebe2fd544620bc7e81e3294776b3425df48a /syntax-theme-dark.css?v=dfede4879841e4a58e5fc71115aa5f5b82e206d85eb771ff4e5a40a1d82621570aad2458f637365ae4370d9a1cf5070edc9765f7c2d4506e12e2ba3c6081ffd5 /sw-style.css?v=a0fa1e87fa2bb3e03d18cefc81ef5c8cfa58c6aa6eea0af223fa155e088bc5af22d32d3ee785ebd3fc26b4c49b70f0bd423f7d592a419a24e6d1e2cb720b7e05 /posts/page/2/ /posts/page/3/ /categories/ /categories/IT/ /categories/LIFE/ /tags/ /tags/Linux/ /tags/aircontrol/ /tags/cloud/ /tags/docker/ /tags/embedded/ /tags/git/ /tags/homelab/ /tags/kubernetes/ /tags/life/ /tags/oracle/ /tags/project/ /tags/review/ /tags/story/ /tags/system/ /tags/telegram/ /tags/zimaboard/ /posts/linuxstarter1/ /posts/review1/ /posts/iotproj1/ /posts/k8s1/ /posts/married/ /posts/terraform1/ /posts/cloud1/ /posts/dockeradv3/ /posts/dockeradv2/ /posts/dockeradv1/ /posts/homelab1/ /posts/git3/ /posts/embed1/ /posts/docker5/ /posts/itstory3/ /posts/docker4/ /posts/docker3/ /posts/docker2/ /posts/docker1/ /posts/telegrambot1/ /posts/git2/ /posts/git1/ /posts/itstory2/ /posts/virtualization1/ /posts/itstory1/ /whoami/ /posts/ trennui.jpg?v=d00c279cd8f340368f795c33d98a0541f5c39d1c19792ff6b863c6eec96ae1bb4795ea66ebeed5be73c5e2eb40ff3b5a57ea8ba359a173e9c485adf40806a728 caykhotrennui.jpg?v=69fe39128884c96777dc0e2b1b820246a84ec584ba62a7e1eee0c0bd3817f722e4397dbcc85078ffae08da3f4d7094bb66d650a3d67d2e300cf1a06ab18f0848 caytrennui.jpg?v=d27dddf71903dd4a733902097d3cb7ba3d72fd3f8a0ed1728549ae93fecb861d521f5c1bb9087c472e6af8563eacdec484d2c0a8f08f0c2225d1fffa2e8d6329 /icon-192x192.png?v=3820c1b1e6d755d2b7c2a04a65f0f1feef793b297f7ee995947137ccd8f73ec304457f6ce1df987a9a0a13ed7dacd203225505b832ccd2318b530ae53a55cebc /glitch.css?v=0b9b7f8691385df5b832251e9cf4c56d68cbcfc98c6e4c27e015f6fb29d2f0c18c358c98c0e7e0a1da9f263d6b355b811e49aac099b70889090912a5040f754a /sitemap.xml /search_index.en.json /search.js /elasticlunr.min.js?v=b9be63b71422cbfde9f14310b397d9a7092f2946bffec11811a831398ace978c1c592e9a578f1fa32041e6c0dde68657fe58d3c30b0eaa758c63c5fd45117336">