Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ Tháng 6, 2022

Docker: Mạng network bridge kết nối các container với nhau - Part 8

Trong bài viết này, mình sẽ hướng dẫn các bạn cách kết nối 2 container sử dụng ASP.NET Core với SQL Server. Trong Docker, có 3 loại network được tự động tạo ra: bridge, host, và none PS C:\WINDOWS\system32> docker network ls NETWORK ID NAME DRIVER SCOPE d665d2690c92 bridge bridge local 4029cb0d3764 host host local 0a2d8cf2eb08 none null local Khi bạn run một container, bạn có thể sử dụng flag: --network để chỉ định loại network mà bạn muốn container chạy trên đó khi run. Vì mặc định được tạo ra bởi docker, nên bạn có thể sử dụng nó bất cứ khi nào cần. Để giao tiếp với các container với nhau, 2 container phải nằm trong 1 network. Trong bài viết này, mình làm 2 ví dụ. Tại sao có 2 ví dụ? Vì ví dụ đầu tiên sẽ tương đối đơn giản dễ hiểu. Ví dụ 2 sẽ có 1 chút rắc rối nhưng dựa trên ví dụ 1, bạn sẽ dễ dàng hiểu ra. Các lệnh về network Liệt kê network docker network ls Tạo 1 network docker network create <netwo

Heroku là gì

Heroku là gì? Nó là nền tảng đám mây cho phép các lập trình viên xây dựng, triển khai, quản lý và mở rộng ứng dụng (PaaS – Platform as a service). Nó rất linh hoạt và dễ sử dụng, cung cấp cho một con đường đơn giản nhất để đưa sản phẩm tiếp cận người dùng. Nó giúp các nhà phát triển tập trung vào phát triển sản phẩm mà không cần quan tâm đến việc vận hành máy chủ hay phần cứng…

Docker: Cài đặt MS SQL Server Linux với Docker - Part 7

Trong bài viết này, bạn sẽ sử dụng Docker để pull và run image chứa SQL Server 2019 (15.x) Linux. Sau đó, bạn có thể kết nối với sqlcmd để tạo cơ sở dữ liệu và thực hiện các truy vấn. Các lệnh trong bài viết này được thực hiện trong môi trường PowerShell chạy trong Windows. Một số điểm mà bạn cần lưu ý: User quản trị mặc định: sa. Password được thiết lập bằng biến môi trường SA_PASSWORD (Đặt password phải mệnh, từ 8 ký tự, gồm số, chữ). Thiết lập biến môi trường ACCEPT_EULA=Y Port mặc định là 1433. Chúng ta sẽ đổi sang port 1431 Pull và run container SQL Server Docker image: https://hub.docker.com/_/microsoft-mssql-server Pull image docker pull mcr.microsoft.com/mssql/server:2019-latest Run Linux container docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" ` -p 1431:1433 --name sql1 --hostname sql1 ` -d ` mcr.microsoft.com/mssql/server:2019-latest Lưu ý: Port SQL Server là 1431 Tên container là sql1 -d: Chạy container ở chế độ

Các phần mềm hỗ trợ thiết kế UML

Power Designer PowerDesigner là một công cụ kiến trúc và thiết kế có thể hình dung, quản lý tác động của những thay đổi cho hệ thống của bạn trước khi nó xảy ra, để bạn có thể phản ứng lại những thay đổi một cách tự tin. PowerDesigner là một công cụ mô hình hóa chuyên nghiệp và công cụ quản lý siêu dữ liệu có thể được sử dụng để thiết kế và kiểm soát cơ sở dữ liệu siêu dữ liệu. PowerDesigner rất dễ sử dụng trong việc quản lý cơ sở dữ liệu, dữ liệu hiển thị chỉ là các bảng và đồ thị , do đó điều này không gây nhầm lẫn cho người không biết các truy vấn khác nhau cho cơ sở dữ liệu SQL. Tính năng, đặc điểm Lập mô hình dữ liệu và các nhà phân tích dữ liệu Kiến trúc sư và công cụ phát triển Tích hợp vào một cơ sở chung Khả năng mở rộng và thân thiện với người dùng cao Hỗ trợ hơn 80 RDBMS Sơ đồ phân tích tác động và đồ họa Dễ dàng sử dụng framework, và nhiều hơn nữa. Visual Diagram Visual Paradigm là một chương trình chuyên nghiệp và có lẽ là công cụ tốt nhất để thiết kế và tùy chỉnh các biểu

Kubernetes: Setup eShopOnContainers - Day 3

Setup eShopOnContainters dựa trên Docker và Kubernetes Link source code: https://github.com/dotnet-architecture/eShopOnContainers Hướng dẫn Setup Dưới đây là hướng dẫn cách setup project trên Windows Windows Setup Tham khảo cách setup khác: Visual Studio (F5 experience) Docker compose on windows Docker compose on macOS Local Kubernetes Helm là gì Helm là một trình quản lý gói và công cụ quản lý ứng dụng cho Kubernetes, gói nhiều tài nguyên Kubernetes vào một đơn vị triển khai logic duy nhất được gọi là Chart Cách install Helm trên Windows: https://phoenixnap.com/kb/install-helm NGINX Nginx là một máy chủ Web Server mã nguồn mở. Dự án Nginx được phát hành và sử dụng như một web server được thiết kế hướng đến mục đích cải thiện tối đa hiệu năng và sự ổn định. Bên cạnh đó, nhờ vào các khả năng của máy chủ HTTP mà NGINX còn có thể hoạt dộng như một proxy server cho email (IMAP, POP3, và SMTP), reverse proxy, và trung gian để cân bằng tải cho các máy chủ HTTP, TCP, và UDP. Pod là gì

Docker: Các lệnh Debug - Part 6

Lệnh docker inspect Để có được thông tin chi tiết về một image, container nào đó sử dụng đến lệnh docker inspect, lệnh này trả về thông tin về đối tượng cần truy vấn dưới dạng JSON. Cú pháp như sau: docker inspect name_or_id_of_image_container Tham số name_or_id_of_image_container là tên hoặc ID của container hoặc Imgage. Ví dụ đang có container với tên myapp (hoặc ID là c60364449900), để truy vấn thông tin chi tiết về nó gõ docker inspect myapp Hoặc docker inspect c60364449900 Kết quả thông tin có dạng: [ { "Id": "c60364449900eaf959e6e8f0f137f4018352e1ba5c1114e277f04c30fea983d6", "Created": "2022-06-15T00:46:05.865814609Z", "Path": "dotnet", "Args": [ "WebAppUsingDocker.dll" ], "State": { "Status": "running", "Running": true, "Paused": false, &

Docker: Tạo Dockerfile cho project ASP.NET Core - Part 5

Trong bài viết này, mình sẽ tổng hợp các bước để tạo file Dockerfile cho project ASP.NET Core Tạo project ASP.NET Core Tạo project ASP.NET Core từ template có sẵn của Visual Studio Ở đây bạn cần chú ý lệnh publish trong dotnet: dotnet publish [<PROJECT>|<SOLUTION>] [-a|--arch <ARCHITECTURE>] [-c|--configuration <CONFIGURATION>] [-f|--framework <FRAMEWORK>] [--force] [--interactive] [--manifest <PATH_TO_MANIFEST_FILE>] [--no-build] [--no-dependencies] [--no-restore] [--nologo] [-o|--output <OUTPUT_DIRECTORY>] [--os <OS>] [-r|--runtime <RUNTIME_IDENTIFIER>] [--self-contained [true|false]] [--no-self-contained] [-s|--source <SOURCE>] [-v|--verbosity <LEVEL>] [--version-suffix <VERSION_SUFFIX>] dotnet publish -h|--help Bạn cần nắm rõ các lệnh trong để build và run ứng dụng ASP.NET dotnet publish -c Release -o out Publish source code ra folder \out cd out dotnet WebAppUsingDocker.dll

Docker: Tạo docker file - Part 4

Trong bài viết này, mình sẽ hướng dẫn các bạn cách chứa một ứng dụng .NET bằng Docker. Tạo và publish một ứng dụng .NET đơn giản Tạo file Dockerfile for .NET Build Docker image Tạo và run Docker container Docker platform sử dụng Docker engine để nhanh chóng xây dựng và đóng gói ứng dụng dưới dạng Docker image. Những image này được viết ở định dạng Dockerfile để được triển khai và chạy trong một container chứa nhiều lớp. Tạo ứng dụng .NET Console Application Trong cửa sổ PowerShell, bạn gõ lệnh dotnet new console -o App -n DotNet.Docker Bạn sẽ có cây thư mục như sau: 📁 containerize-a-net-app     └──📂 App         ├──DotNet.Docker.csproj         ├──Program.cs         └──📂 obj             ├── DotNet.Docker.csproj.nuget.dgspec.json             ├── DotNet.Docker.csproj.nuget.g.props             ├── DotNet.Docker.csproj.nuget.g.targets             ├── project.assets.json             └── project.nuget.cache Mở file Program.cs, thay thế bằng đoạn sau: var counter = 0; var max = args.Length

Docker: Làm quen với Hello World - Part 3

Trong bài viết này, mình sẽ hướng dẫn các bạn cách pull và chạy chương trình đầu tiên Hello World. Sau đó sẽ hướng dẫn tiếp chạy Ubuntu trong bash Shell Run Hello World và Ubuntu trong PowerShell Repository: https://hub.docker.com/_/hello-world Pull image:  docker pull hello-world Tuy nhiên, mình sẽ chạy lệnh docker run để vừa download, tạo 1 container, và run container. (Tham khảo Part 2) Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:  1. The Docker client contacted the Docker daemon.  2. The Docker daemon pulled the "hello-world" image from the Docker Hub.     (amd64)  3. The Docker daemon created a new contain

Docker: Docker là gì - Part 1

Docker là một dự án mã nguồn mở giúp tự động triển khai các ứng dụng Linux và Windows vào trong các container ảo hóa. Docker cung cấp một lớp trừu tượng và tự động ảo hóa dựa trên Linux. Docker sử dụng những tài nguyên cô lập của Linux như cgroups, kernel, quản lý file để cho phép các container chạy độc lập bên trong một thực thể Linux. Các thành phần chính trong Docker  Docker Engine: dùng để tạo ra Docker image và chạy Docker container.  Docker Hub: kho lưu trữ công khai của Docker image, bên cạnh đó còn có một tên gọi khác là “thư viện và cộng đồng lớn nhất thế giới về image container”.  Docker Machine: tạo ra các Docker engine trên máy chủ.  Docker image: một dạng tập hợp các file của ứng dụng, được tạo ra bởi Docker engine. Nội dung của các Docker image sẽ không bị thay đổi khi di chuyển. Docker image được dùng để chạy các Docker container. Do tính chất read-only của chúng, những images này đôi khi được gọi là snapshots.  Docker container: một dạng runtime của các Docker image, dù

Command line - PowerShell - Chocolatey

PowerShell khác Command Prompt như thế nào? PowerShell thực sự rất khác so với Command Prompt. Nó sử dụng các lệnh khác nhau được gọi cmdlet. Nhiều nhiệm vụ quản trị hệ thống như từ quản lý registry đến WMI (Windows Management Instrumentation) đều được hiển thị qua các lệnh cmdlet của PowerShell, trong khi Command Prompt không thể thực hiện được. Chocolatey là gì? Chocolatey là trình cài đặt ứng dụng bằng dòng lệnh trên Windows dựa trên trình quản lý gói dành cho nhà phát triển có tên là NuGet. Không giống như cài đặt thủ công, Chocolatey thêm, cập nhật và gỡ cài đặt các chương trình ở dạng chạy nền, không cần nhiều sự tương tác từ người dùng. Tải và cài đặt Chocolatey Mở cửa sổ Powershell với quyền Adminstrator: Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Kubernetes Course

Day 1: Minikube, docker, and Kubernetes Cài đặt minikube - docker: https://nhatkyhoctap.blogspot.com/2022/05/cai-at-minikube.html  Kubernetes Components: https://nhatkyhoctap.blogspot.com/2022/05/kubernetes-components.html Day 2 - Kubernetes dashboard: https://nhatkyhoctap.blogspot.com/2022/05/kubernetes-dashboard.html Day 3 - Seup eShopOnContainers: https://nhatkyhoctap.blogspot.com/2022/06/day-3-setup-eshoponcontainers.html

Setup .NET Microservices Sample Reference Application

Link: https://github.com/dotnet-architecture/eShopOnContainers Tutorial: https://github.com/dotnet-architecture/eShopOnContainers/wiki/Windows-setup#install-docker-desktop  Docker Compose Khi bắt đầu 1 dự án mới, ta muốn setup Docker cho nó, tất nhiên là sẽ sử dụng Dockerfile, cài đặt tất cả những môi trường cần thiết lên một container duy nhất, rồi chạy Project của chúng ta trên container đó. Có 1 hướng đi hay hơn trong việc xây dựng image, đó là dùng lại hay kết hợp các image có sẵn để không cần mất thời gian tạo lại từ đầu, ngoài ra nếu ta muốn nhiều Project cùng dùng chung 1 cơ sở dữ liệu thì làm như thế nào. Khi đó, chúng ta sẽ xây dựng nhiều container, mỗi container sẽ làm 1 nhiệm vụ riêng, khi nào cần tương tác với database thì gọi tới container mysql chẳng hạn, tương tác với redis thì gọi tới container redis, cần cái gì thì gọi tới container làm nhiệm vụ đó. Để cài đặt Compose có thể sử dụng link từ trang chủ của Docker, Inc. dưới đây: https://docs.docker.com/compose/install/ D