Windows WSL Alpine Linux - Docker - Git ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ

์†Œ๊ฐœ ๊ธฐ์กด์— ์“ฐ๋˜ ๋ฐฉ๋ฒ•์€ ๋ฒ„์ „์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๊ฑฐ๋‚˜ ์ž์‹ ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์„ค์น˜ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์› ๋‹ค. Windows 10, 11 ์—์„œ WSL2๋ฅผ ์ด์šฉํ•œ Alpine ์„ค์น˜๋ฅผ ์ตœ์ข… ์ •๋ฆฌํ•œ๋‹ค. ์„ค์น˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•„์š”ํ•œ ํ™˜๊ฒฝ(docker, git ๋“ฑ)์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•˜๋„๋ก ํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์ถ”๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ๋ณด์™„ํ•œ ํ›„ ์ด๋ฏธ์ง€๋ฅผ ๋ฐฑ์—…ํ•œ๋‹ค. ์ถ”ํ›„ Windows๋ฅผ ์žฌ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ๊ธฐํƒ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ฐฑ์—… ์ด๋ฏธ์ง€๋ฅผ ๋ณต์›ํ•œ๋‹ค. ๋˜๋Š” ๋‹ค๋ฅธ PC๋กœ ๋ฐฑ์—… ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ์œ ์šฉํ•˜๋‹ค. ์ตœ์†Œ์„ค์น˜๋งŒ ์ ์šฉํ•ด์„œ ์„ค์น˜ํŒŒ์ผ์ด๋‚˜ ๋ฐฑ์—…ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋‘๋ฉด ๋น ๋ฅธ ๋ฐฑ์—…, ๋ณต๊ตฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ...

2025-06-24 ยท (updated 2025-06-25) ยท 552 words

Dockerfile - run, cmd, entrypoint ์ฐจ์ด

Dockerfile ์—์„œ RUN, CMD, ENTRYPOINT ์ฐจ์ด RUN - ๋„์ปค์ด๋ฏธ์ง€ ์ƒ์„ฑ์‹œ ๋™์ž‘ CMD - ๋„์ปค์ด๋ฏธ์ง€ ์‹คํ–‰์‹œ ๋™์ž‘ (๋Œ€์ฒด ๊ฐ€๋Šฅ) ENTRYPOINT - CMD์™€ ๊ฐ™์œผ๋‚˜ ์‹คํ–‰์‹œ ๋ฐ˜๋“œ์‹œ ๋™์ž‘ Dockerfile - RUN # create log script vi log-event.sh ... #!/bin/sh echo `date` $@ >> log.txt cat log.txt ... chmod u+x log-event.sh # create Docker Image vi Dockerfile ... FROM alpine ADD log-event.sh / RUN ["/log-event.sh","image created"] # ์ƒ์„ฑ์‹œ ๋™์ž‘ CMD ["/log-event.sh","container started"] # ์‹คํ–‰์‹œ ๋™์ž‘ ... docker build -t myimage . # Run Docker Image - RUN์€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์‹œ์— ๋™์ž‘ํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. docker run myimage Wed Sep 27 07:10:26 UTC 2023 image created Wed Sep 27 07:36:10 UTC 2023 container started docker run myimage Wed Sep 27 07:10:26 UTC 2023 image created Wed Sep 27 07:36:21 UTC 2023 container started Dockerfile - CMD, ENTRYPOINT ์—ฌ๋Ÿฌ๊ฐœ์˜ CMD # Create Docker Image vi Dockerfile ... FROM alpine ADD log-event.sh / RUN ["/log-event.sh","image created"] # ์ƒ์„ฑ์‹œ ๋™์ž‘ CMD ["/log-event.sh","container started"] # ์‹คํ–‰์‹œ ๋™์ž‘ (๋ฌด์‹œ๋จ) CMD ["/log-event.sh","container running"] # ์‹คํ–‰์‹œ ๋™์ž‘ (๋งˆ์ง€๋ง‰CMD์ฒ˜๋ฆฌ) ... docker build -t myimage . # Run Docker Image docker run myimage Wed Sep 27 07:10:26 UTC 2023 image created Wed Sep 27 07:23:09 UTC 2023 container running CMD์™€ ENTRYPOINT # Create Docker Image vi Dockerfile ... FROM alpine ADD log-event.sh / RUN ["/log-event.sh","image created"] # ์ƒ์„ฑ์‹œ ๋™์ž‘ ENTRYPOINT ["/log-event.sh"] # ์‹คํ–‰์‹œ ๋™์ž‘ CMD ["container started"] # ์‹คํ–‰์‹œ ๋™์ž‘ ... docker build -t myimage . # Run Docker Image docker run myimage Wed Sep 27 07:10:26 UTC 2023 image created Wed Sep 27 07:23:09 UTC 2023 container started # Run Docker Image with argument docker run myimage custom event Wed Sep 27 07:10:26 UTC 2023 image created Wed Sep 27 07:24:31 UTC 2023 custom event REFERENCE Difference Between run, cmd and entrypoint in a Dockerfile - https://www.baeldung.com/ops/dockerfile-run-cmd-entrypoint Entrypoint vs cmd - https://bluese05.tistory.com/77

2023-09-27 ยท (updated 2023-10-13) ยท 298 words

Docker on Windows - ์œˆ๋„์šฐ์ฆˆ์—์„œ ๋„์ปค ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ

๊ฐœ์š” ์œˆ๋„์šฐ์ฆˆ์—์„œ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค. ์ด๊ฒƒ์œผ๋กœ์จ ์œˆ๋„์šฐ, ๋ฆฌ๋ˆ…์Šค์˜ ๋ชจ๋“  ํ™˜๊ฒฝ์—์„œ ๋„์ปค์˜ ๋ฒ”์šฉ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์ด ํ™•๋ณด๋œ๋‹ค. ์ฆ‰, ๊ฐœ๋ฐœํ™˜๊ฒฝ, ํ…Œ์ŠคํŠธํ™˜๊ฒฝ, ์‹คํ–‰ํ™˜๊ฒฝ์˜ ์ผ๊ด€์„ฑ์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค. ์ฒซ์งธ๋Š” WSL2 + Git Bash + Docker Desktop๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‘˜์งธ๋Š” WSL2 + Alpine๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์•ŒํŒŒ์ธ ๋ฆฌ๋ˆ…์Šค์—์„œ git + docker์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด ์กฐ๊ธˆ ๋ณต์žกํ•ด ๋ณด์ด๊ธด ํ•˜๋‚˜ ํ›จ์”ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ ์€ ๋ฆฌ์†Œ์Šค์™€ ๋น ๋ฅธ ์‹คํ–‰ ์†๋„๊ฐ€ ๋‹๋ณด์ธ๋‹ค. ๋˜ํ•œ ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ ํŒŒ์ผ์‹œ์Šคํ…œ ๋ฌธ์ œ, ํผ๋ฏธ์…˜ ๋ฌธ์ œ, ๊ฒฝ๋กœ ์ฒ˜๋ฆฌ ๋ฌธ์ œ ๋“ฑ์—์„œ ํ›จ์”ฌ ์‰ฝ๊ณ  ํŽธํ•œ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ ๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ƒ์ˆ ํ•œ๋‹ค. Windows WSL2 ๊ณตํ†ต ๊ธฐ๋ฐ˜ ์„ค์ • ์„ค์น˜ํ™˜๊ฒฝ: Windows 11 Bios ์„ค์ •: ๋ฐ”์ด์˜ค์Šค์—์„œ ๊ฐ€์ƒ๋จธ์‹  ์ง€์›(Virtual Machine Support) ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•œ๋‹ค. WSL2๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•„์š”ํ•˜๋ฉด ์—…๋ฐ์ดํŠธํ•œ๋‹ค. (PowerShell:๊ด€๋ฆฌ์ž๊ถŒํ•œ์œผ๋กœ) > wsl -l -v # Version Check > wsl --update # wsl2 upgrade or update Nerd Font ์„ค์น˜ ํ„ฐ๋ฏธ๋„์—์„œ ์•„์ด์ฝ˜ ๋“ฑ nerd font๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์ฝ”๋”ฉ์‹œ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ์„ค์น˜ MeslsLGS NF Install https://github.com/fontmgr/MesloLGSNF D2Coding (์ฝ”๋”ฉ์šฉ ์˜๋ฌธ ํ•œ๊ธ€ ์ง€์›: ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ Nerd Font๊ฐ€ ์•„๋‹ˆ๋‹ค.) https://github.com/naver/d2codingfon WSL2 + Git Bash + Docker Desktop Docker Desktop ...

2023-08-03 ยท (updated 2025-06-19) ยท 853 words

Docker Images Remove - ๋„์ปค ์ด๋ฏธ์ง€ ์ œ๊ฑฐ

๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• $ docker images # ๋„์ปค ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ ํ™•์ธ $ docker images -all # ํžˆ๋“  ์ด๋ฏธ์ง€๊นŒ์ง€ ๋ชจ๋‘ ๋ณด๊ธฐ $ docker rmi <ID> # image ID๋กœ ์ œ๊ฑฐ $ docker rmi -f <ID> # image ID๋กœ ๊ฐ•์ œ๋กœ ์ œ๊ฑฐ Docker none image ์ •๋ฆฌํ•˜๊ธฐ $ docker container prune # ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‘ ์ข…๋ฃŒ $ docker image prune # <none> ์ด๋ฏธ์ง€ ๋ชจ๋‘ ์ œ๊ฑฐ $ docker system pruen # ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌ

2022-11-21 ยท 66 words

Docker-Busybox

Intro busybox๋Š” ์ž‘๊ณ  ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ POSIX ํ‘œ์ค€ ์œ ํ‹ธ ๋ชจ์Œ์ด๋‹ค. docker์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋กœ ์‘์šฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‘์šฉ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ๋นŒ๋“œํ•˜๊ธฐ Kubernates์— init container๋กœ ์‚ฌ์šฉํ•˜๊ธฐ HTTP ์›น์„œ๋ฒ„๋กœ ๋Œ๋ฆฌ๊ธฐ ๊ฐ€์ƒ์ปจํ…Œ์ด๋„ˆ ๋ณผ๋ฅจ์„œ๋ฒ„(์Šคํ† ๋ฆฌ์ง€)๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ก€ busybox ์ตœ์‹ ๋ฒ„์ „ ์ด๋ฏธ์ง€ ๋ฐ›๊ณ  ์‹คํ–‰ $ docker run -it --rm busybox busybox + myapp : myapp์€ ๋ฆฌ๋ˆ…์Šคํ™˜๊ฒฝ์—์„œ ์ •์ ์ปดํŒŒ์ผํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ $ cat Dockerfile # Write Dockerfile FROM busybox COPY ./my-static-binary /my-static-binary CMD ["/my-static-binary"] $ docker build -t busybox-myapp . # Build Image $ docker run -t --rm busybox-myapp # Run Container busybox + httpserver : ์›น์„œ๋ฒ„๋™์ž‘(httpserver๋Š” static compile binary) $ cat Dockerfile # Write Dockerfile FROM busybox COPY ./httpserver /home/ CMD /home/httpserver $ docker build -t go-server . # Build Image $ docker run -p 8080:8080 --rm -it go-server # Run Container $ curl -v http://localhost:8080/ # Test Busybox์— ๊ด€ํ•˜์—ฌ ๋†€๋ž๊ฒŒ๋„ busybox๋Š” httpd๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๋ฌผ๋ก  ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ๋Š” ๊ณค๋ž€ํ•˜๋‹ค. ๋‚ด์žฅ๋œ grep๋„ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ ์žˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ๊ฒ€์ƒ‰์„ ์จ์•ผํ•œ๋‹ค๋ฉด ํšจ์œจ์ด ์ข‹์ง€ ์•Š์œผ๋ฏ€๋กœ gnu grep์„ ์–น์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. busybox๋Š” glibc, musl ๋“ฑ์„ ์ง€์›ํ•˜๋Š” ๋ฒ„์ „์ด ์žˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋„ฃ์–ด์•ผํ•  ๋•Œ ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ด๋‹ค. alpine ๋ฆฌ๋ˆ…์Šค๊ฐ€ busybox + musl + os env ์ด๋ฏ€๋กœ ์ž์‹ ๋งŒ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ธฐ๋ณธ์ ์ธ utf-8์ด ์ง€์›๋˜์ง€๋งŒ ์ถœ๋ ฅ๋งŒ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. sh, echo, vi ๋„ ๊ฐ€๋ณ๊ฒŒ ์“ฐ๊ธฐ๋Š” ์ข‹์œผ๋‚˜ utf-8 ํ•œ๊ธ€์ž…๋ ฅ์ด ์•ˆ๋œ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” bash, echo, vi๋ฅผ ์ •์ ์ปดํŒŒ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋Œ€์ฒด ๋˜๋Š” ๋„์ปคํ—ˆ๋ธŒ(DockerHub)์˜ toybox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. utf-8 ์ž…์ถœ๋ ฅ์„ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค. ์‹ฌ์ง€์–ด ์‚ฌ์ด์ฆˆ๊ฐ€ ๋” ์ž‘๋‹ค. utf-8์˜ ์ž…์ถœ๋ ฅ ํ™˜๊ฒฝ์ด ๋ชจ๋‘ ํ•„์š”ํ•˜๋‹ค๋ฉด toybox๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค. busybox(์•ฝ1.2MB)๋‚˜ toybox(์•ฝ764K)๋Š” ์ •๋ง ๊ฐ€๋ณ๊ฒŒ ์‹คํ–‰ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ™œ์šฉ์€ ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด๋‚˜ ํฐ๊ทœ๋ชจ์˜ ์‹คํ–‰ํ™˜๊ฒฝ๋ณด๋‹ค๋Š” ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด ํ™˜๊ฒฝ์—์„œ ํšจ์œจ์ ์ธ ์šด์šฉ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. Links How to Use th Busybox Docker Official Image https://www.docker.com/blog/use-cases-and-tips-for-using-the-busybox-docker-official-image/ Using the BusyBox Docker Image for Building Applications : A Complete Guide https://www.sohamkamani.com/docker/busybox-guide/

2022-11-21 ยท (updated 2024-02-15) ยท 290 words