dimohy
1
μ¬ν΄λ 컨ν
μ΄λ λ° λ§μ΄ν¬λ‘μλΉμ€λ₯Ό μ κ·Ήμ μΌλ‘ μ
무μ μ¬μ©νκΈ° μν΄ μλ¬νλ €κ³ ν©λλ€.
dockerλ νλ‘μΈμ€ 격리 κΈ°μ μ μ΄μ©ν©λλ€. μν€λ°±κ³Όμ λ컀 μΉ νμ΄μ§μ κΈ°λ₯μ λ€μ κ°μ΅λλ€.
λ컀 컨ν
μ΄λλ μΌμ’
μ μννΈμ¨μ΄λ₯Ό μννΈμ¨μ΄μ μ€νμ νμν λͺ¨λ κ²μ ν¬ν¨νλ μμ ν νμΌ μμ€ν
μμ κ°μΌλ€. μ¬κΈ°μλ μ½λ, λ°νμ, μμ€ν
λꡬ, μμ€ν
λΌμ΄λΈλ¬λ¦¬ λ± μλ²μ μ€μΉλλ 무μμ΄λ μμ°λ₯Έλ€. μ΄λ μ€ν μ€μΈ νκ²½μ κ΄κ³ μμ΄ μΈμ λ λμΌνκ² μ€νλ κ²μ 보μ¦νλ€.
κ²°κ΅μ μ΄λ¬ν μ΄μ μ μ΄μ©ν΄μ κ°λ° μμ μμ ν
μ€νΈ νλ νκ²½κ³Ό μ€μ μ΄μ νκ²½μ λμΌνκ² κ΅¬μ±ν μ μμ΅λλ€.
1κ°μ μ’μμ
dimohy
2
μλμμ docker(μμΌλ‘ λ컀) νκ²½μ ꡬμ±νλ €λ©΄ Docker Desktop
μ μ€μΉνλ©΄ λ©λλ€. νμ§λ§ λΌμ΄μΌμ€μ λ³νλ‘ κ±Έλ¦¬λ μ μ΄ μμ΅λλ€. μ΄ λΆλΆμ ν¬λΌμμλ μΈκΈμ΄ λμμλλ°μ,
μ νλμ΄ μμ£Ό μμΈνκ² WSL2μ λ컀λ₯Ό μ§μ μ€μΉν΄μ νμ©νλ κΈμ μμ±ν΄μ£Όμ
¨μ΅λλ€. μ΄κΈμ ν΅ν΄ νμ΅μ μ§νν©λλ€.
2κ°μ μ’μμ
dimohy
3
κ°μ΄λμ λ°λΌ λ컀λ₯Ό μ€μΉνκ³ λ§ν¬λ λ¬Έμλ₯Ό ν΅ν΄ λ컀 κ·Έλ£Ήμ μ¬μ©μλ₯Ό ν¬ν¨ν΄μ μ€μ νλκ²κΉμ§ μ§νν©λλ€.
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
κ·Έλ¦¬κ³ μ λμνλμ§λ₯Ό νμΈνκΈ° μν΄ docker run hello-world
λ₯Ό μ€νν΄λ΄
λλ€. (μ΄ λ λ°λͺ¬μ΄ λμμ€μ΄μ¬μΌ ν©λλ€)
μ νλμ λ¬Έμλλ‘ ν
μ€νΈλ₯Ό ν΄λ λ©λλ€.
$ sudo service docker start
$ docker run -i --rm hello-world
1κ°μ μ’μμ
dimohy
4
WSL μλμΌλ‘ μλΉμ€κ° μ€νλμ§ μμ΅λλ€. νμ§λ§ μλμ° 11μ WSL 2μλ ν΄λΉ κΈ°λ₯μ΄ λ€μ΄ μκ³ μ νλμ κΈμ λ°λΌ κ΄λ ¨ μ€μ μ ν΄λ΄
λλ€.
$ sudo nano /etc/wsl.conf
command
μμ±μ νλ²λ§ μ¬μ©ν μ μμΌλ―λ‘ λ³λμ μ
Έ μ€ν¬λ¦½νΈλ‘ λ§λλλ€.
/etc/wsl.conf
[boot]
command=/etc/autorun.sh
$ sudo nano /etc/autorun.sh
/etc/autorun.sh
#!/bin/sh
sudo service docker start
$ sudo chmod +x /etc/autorun.sh
μ΄ν WSLμμ λμ¨ λ€ wsl --shutdown
μ΄ν λ€μ WSLλ‘ μ§μ
ν΄μ, docker ps
λͺ
λ Ήμ΄ λμνλ©΄ λ컀 μλΉμ€κ° μ μμ μΌλ‘ λμνλ κ²μ
λλ€.
1κ°μ μ’μμ
dimohy
5
λ€μμΌλ‘ νΈμ€νΈ μ»΄ν¨ν°μμ WSL2μ λ컀 λ°λͺ¬ ν¬νΈμ μ κ·ΌνκΈ° μν΄, λ€μμ²λΌ λ컀 λ°λͺ¬ μ€μ μ λ³κ²½ν©λλ€.
$ sudo naneo /etc/docker/daemon.json
/etc/docker/daemon.json
{"features": { "buildkit": true }, "hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"]}
μ΄ν λ컀 λ°λͺ¬μ μ¬μμνν,
$ sudo service docker restart
μ μ€νλλμ§λ₯Ό νμΈνκΈ° μν΄ docker ps
λ° νΈμ€νΈ μ»΄ν¨ν°μμ `telnet 127.0.0.1 2375βκ° μ μ μλλμ§λ₯Ό νμΈν©λλ€.
μμΈν λ΄μ©μ μ νλμ κΈμ κΌ μ°Έμ‘°νμΈμ!
1κ°μ μ’μμ
dimohy
6
μ νλμ κΈμ λ°κ° μ΅μ’
μ μΌλ‘ pythonμμ Flaskλ₯Ό μ΄μ©ν΄ Hello World
λ₯Ό μΆλ ₯νλ μλΉμ€λ₯Ό λ컀λ₯Ό ν΅ν΄ νμΈν΄ λ³Ό μ μμμ΅λλ€.
PS> docker build -t pythonapp:latest .
PS> docker.exe run -d --rm -p 5000:5000 pythonapp:latest
PS> curl.exe http://localhost:5000
Hello, Docker!
1κ°μ μ’μμ
dimohy
7
Visual Studio 2022μμ Blazor Server
νλ‘μ νΈ ν
νλ¦Ώμ μ΄μ©ν΄ Docker
μ¬μ©μ μ ννκ³ μ€ννλλ°,
λ컀 λΉλλ μλλλ° μ€νμ΄ λμ§ μμ΅λλ€.
1>docker run -dt -v "C:\Users\dimohy\vsdbg\vs2017u5:/remote_debugger:rw" -v "C:\Users\dimohy\AppData\Roaming\Microsoft\UserSecrets:/root/.microsoft/usersecrets:ro" -v "C:\Users\dimohy\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro" -v "W:\Enjoy\BlazorApp7\BlazorApp7:/app" -v "W:\Enjoy\BlazorApp7:/src/" -v "C:\Users\dimohy\.nuget\packages\:/root/.nuget/fallbackpackages" -v "p:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages:/root/.nuget/fallbackpackages2" -e "ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true" -e "ASPNETCORE_ENVIRONMENT=Development" -e "ASPNETCORE_URLS=https://+:443;http://+:80" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2" -P --name BlazorApp7 --entrypoint tail blazorapp7:dev -f /dev/null
1>docker: Error response from daemon: invalid volume specification: 'C:\Users\dimohy\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro'.
λ컀λ κ²°κ΅μ WSL2μμ μ€νλ κ²μ΄λ―λ‘ μ κ²½λ‘κ° μ¬λ°λ₯΄μ§ μμ κ²μ
λλ€.
Visual Studio 2022μμ λ컀μμ λλ²κΉ
νλ νκ²½μ μ’ λ μ‘°μ¬ν΄λ΄μΌ κ² μ΅λλ€.
1κ°μ μ’μμ
dimohy
8
WSL2μ λ컀 λ°λͺ¬μ΄ μ λμνκ³ μκ³ WSLμμλ λμ»€κ° μ μ€νλλλ° κ°μκΈ° νΈμ€νΈμμ λμ»€κ° μλ©λλ€. νΉμλ ν΄μ telnet 127.0.0.1 2375
λ‘ μ°κ²°νμΈμ ν΄λ΄€λλ° μ°κ²°μ΄ μλλ€μβ¦ WSL2μ λ€νΈμν¬ μ€λμμΌλ‘ 보μ
λλ€.
1κ°μ μ’μμ
dimohy
9
μΌλ¨ Visual Studioμμ λ컀 νκ²½μμ λλ²κΉ
μ νλ κ²μ νμ¬λ‘μλ λΎ°μ‘±ν μλ μλ κ² κ°μ΅λλ€.
μμ½μ§λ§ WSL λλ²κ·Έ νκ²½μ μ΄μ©νλκ² μ΅μ μΈ κ² κ°κ³ μ,
μ΄μλ λ³κ°λ‘ κ²μλ₯Ό νμ λ λ컀 μ΄λ―Έμ§λ₯Ό λ§λ€μ΄μ£Όλ λ°©λ²μ
https://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&pageno=0&detail=1&wid=11708
Visual Studio Codeμλ 컀맨λ μμ€μΌλ‘ μ€μ μ΄ κ°λ₯νκΈ° λλ¬Έμ λ컀 μμ± λ° λ컀 λλ²κ·Έ νκ²½μΌλ‘ μ€νμ΄ κ°λ₯ν©λλ€. κ΄λ ¨ νμ΅μ ν λ μ’ λ μμΈν μ κ°ν΄λ³΄κ² μ΅λλ€.
1κ°μ μ’μμ