ติดตั้ง Docker Desktop WSL 2

Prerequisites

  • อัพเดท Windows 10 ให้เป็นเวอร์ชัน 1909 (build 18363)
  • เปิด Windows Insider Program Settings แล้วเลือก Fast (Windows 10 Insider Preview build 19018 or higher).
  • ติดตั้ง WSL 2

Download

Install

  • ติดตั้ง Docker Desktop Installer.exe ที่ download มา
  • ที่ System tray ด้านล่างขวาของหน้าจอ ให้คลิกขวาที่ Docker เลือก Settings > General.
  • เลือก Enable the experimental WSL 2 based engine
  • กด Apply & Restart
  • เมื่อ Docker Desktop รีสตาร์ทเสร็จ, เลือก Settings > Resources > WSL Integration แล้วเลือก WSL 2 distributions (เช่น Ubuntu-18.04)
  • กด Apply & Restart

ตรวจสอบการติดตั้ง

ดูเวอร์ชัน

> docker --version
Docker version 19.03.5, build 633a0ea

ดูเวอร์ชันแบบละเอียด

> docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:22:37 2019
 OS/Arch:           windows/amd64
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            Wed Nov 13 07:29:19 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          v1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Link

ติดตั้ง WSL 2

ดู doc ที่ aka.ms/wsl2

ขั้นตอนการติดตั้ง WSL 2

1.update Windows ให้เป็นเวอร์ชันล่าสุด (1909) , ตรวจสอบเวอร์ชันด้วยคำสั่ง winver

2.เปิด Windows Insider Program Settings แล้วเลือก Fast

3.เปิด Turn Windows features on or off เลือก Windows Subsystem for Linux และ Virtual Machine Platform

4.เปิด Microsoft Store เลือกติดตั้ง Ubuntu 18.04

หลังจากติดตั้งเสร็จ จะให้เราตั้ง username และ password

5.เปิด Power Shell

list ดู Distro ที่ติดตั้ง

> wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)

กำหนดให้ Ubuntu-18.04 ที่พึ่งติดตั้ง ใช้ WSL 2

> wsl --set-version Ubuntu-18.04 2

กำหนดให้ default เป็นเวอร์ชัน 2 เลย

> wsl --set-default-version 2

ตรวจสอบดูว่าเป็น version 2 แล้วหรือยัง

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         2

ถ้ารันแล้วไม่เจอคำสั่ง -v แสดงว่ายังเป็น WSL 1

6.กลับมาที่ app Ubuntu18.04 แล้วลองเรียก VS Code

> wsl -d Ubuntu-18.04

หรือ

$ code .

ตรวจสอบเวอร์ชันของ Windows 10

เปิด cmd แล้วพิมพ์

> ver
Microsoft Windows [Version 10.0.19551.1005]

นำเลข build ที่ได้ไปเทียบดูเวอร์ชันที่ Windows 10 release information

VersionAvailability dateOS buildLatest revision date
190912-11-1918363.59214-01-20
190321-05-1918362.59214-01-20
180928-03-1917763.10123-01-20
180913-11-1817763.10123-01-20
180310-07-1817134.12823-01-20
180330-04-1817134.12823-01-20
170918-01-1816299.16523-01-20
170917-10-1716299.16523-01-20

หรือดู Version จากค่า register

> Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    ReleaseId    REG_SZ    2004

ดูด้วย GUI ง่ายสุด เปิด cmd หรือกด Win+R แล้วพิมพ์

> winver

Python3

Set Python’s default version to 3.x on OS X

Open ~/.bash_profile file.

$ nano ~/.bash_profile

Then put the alias as follows:

alias python='python3'

Now save the file and then run the ~/.bash_profile file.

$ source ~/.bash_profile

Congratulation !!! Now, you can use python3 by typing python.

$ python --version
Python 3.8.1

Upgrade pip command

$ pip3 install --upgrade pip

Install virtualenv

$ pip3 install virtualenv

ใช้ C# อ่านไฟล์ CSV

using System;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string filename = "test.csv";
            string text = System.IO.File.ReadAllText(filename, Encoding.GetEncoding(874)).Trim();
            string[] rows = text.Split('\n');
            Console.WriteLine(string.Format("There are {0} rows in '{1}'.", rows.Count(), filename));

            Regex CSVParser = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
            for (int r = 0; r < rows.Count(); r++)
            {
                //string[] cols = rows[r].Split(',');
                string[] cols = CSVParser.Split(rows[r]);

                for (int c = 0; c < cols.Count(); c++)
                {
                    // clean up the fields (remove " and leading spaces)
                    cols[c] = cols[c].TrimStart(' ', '"');
                    cols[c] = cols[c].TrimEnd('"');
                    Console.Write(cols[c]);
                }
                Console.WriteLine();
            }
        }
    }
}

Link

Posted in C#