Docker ãã£ããã³ã¯ãéçºè ã³ãã¥ããã£ã®ãªãŒããŒã§ãããããããã®åéã®å°éå®¶ã§ãããDocker ã®ç¥èãä»ã®äººãšå ±æããããšã«æ ç±ã泚ãã§ããŸãããFrom the Captain's Chairãã¯ããããã£ããã³ã詳ããèŠãŠã圌ããšãã®çµéšã«ã€ããŠè©³ããç¥ãããã°ã·ãªãŒãºã§ãã
æ¬æ¥ã¯ããã€ãã§æãæ¥ç §æéã®é·ãéœåžããã©ã€ãã«ã¯ãæ ç¹ãšããããã¯è¹é·ãã¢ãã¡ãïŒã¢ãªã»ã¢ã©ãæ°ã«ã€ã³ã¿ãã¥ãŒãè¡ããŸãã圌ã¯ãDockerãšKubernetesã®ã»ãã¥ãªãã£ãã¯ã 2025幎éæåªç§ DevOps æžç±ã®æçµåè£äœåã§ãã圌ã¯ãœãããŠã§ã¢ãšã³ãžãã¢ãè¬æŒè ãã³ãã¥ããã£ãã«ããŒã§ãããã 2022以æ¥ãã©ã€ãã«ã¯ã§DockerããŒãã¢ãããäž»å¬ããŠããã ã¢ãããã»ã¢ãªã¯ã€ã©ã³åºèº«ã§ãæ°åŠã®åŠå£«å·ãšã³ã³ãã¥ãŒã¿ãµã€ãšã³ã¹ã®ä¿®å£«å·ãååŸããŠããã

ãã£ãã·ã§ã³ïŒã€ã¹ã¿ã³ããŒã«ã§éå¬ãããããã«ãŒã»ãã£ããã³ãºã»ãµãããã«ãŠãèµ€ãåžœåããã¶ã£ãŠããã®ãç§ã§ãã
Dockerã«åããŠé¢ãã£ãçµç·¯ãæããŠããã ããŸãã?
2015ã§ã¯ãã€ã©ã³ã®ãã¯ãããžãŒäŒæ¥ã§ãã Cafe Bazaar ã§ããã¯ãšã³ããšã³ãžãã¢ãšããŠåããŠããŸãããããã¯ãšã³ãã¯Djangoã§çšŒåããŠããã®ã§ããããžã§ã¯ããç«ã¡äžããããšå¥®éããªãããäžžäžé±éDjango Reinhardtã®é³æ¥œãèŽãç¶ããŸãããäŸåé¢ä¿å°çã®ããã§ãç§ã¯å€±æããŠããã
ååãäœæ°ãªããDockerã䜿ã£ãŠã¿ããã©ãã§ããïŒCIã§äœ¿ã£ãŠããŸããããšèšã£ããåœæDockerã¯2幎ããçµã£ãŠããããç§ã¯ãããŸã§äžåºŠãèããããšããªãã£ãã
ããã§ãç§ã¯1é±éå§¿ãæ¶ããŠDockerãå匷ããŠããã®ã§ãããæ°ã¥ãããä»ã®ãããžã§ã¯ãã®ããã«CIãã€ãã©ã€ã³ãäœæããŠããŸããã
ãã£ãã·ã§ã³ïŒã€ã©ã³ã®ã«ãã§ã»ãã¶ãŒã«ãèµ€ãTã·ã£ããçãŠããã®ãç§ã§ãïŒçãäžïŒã
Dockerãã£ããã³ã«ãªãããšæã£ããã£ããã¯äœã§ãã?
2018ãã2019ã®éãç§ã¯ã¢ã ã¹ãã«ãã ã§åããŠããŸãããããã§ã¯é »ç¹ã«æè¡ç³»ã®äº€æµäŒãéãããŠããŠãã¢ã ã¹ãã«ãã ã®ãããããšããã倧奜ãã ã£ããç§ãã¡ã¯2019幎ã«ãã©ã€ãã«ã¯ã«æ»ããç§ã¯ããå°ããªäŒç€Ÿã§åãå§ããããã§gitãCI/CDãã€ãã©ã€ã³ãDockerãå°å ¥ããŸããã人ã ã¯GitãDockerã«é¢ãã質åãç§ã«æã¡èŸŒãã§ãããããã§ãåŸã§èªåã®åèã®ããã«ãããããMediumã®ããã°ã«æžãçããŠããããšã«ããŸããããããããã®å 容ãã³ãã¥ããã£ã«ãšã£ãŠæçã ãšåãã£ãã®ã§ãæžãç¶ããŸãããäžææãç§ã¯æ¯é±Gitã«é¢ããããã°èšäºãæžããŠããã
ãã³ãããã¯ãå§ãŸã£ããšããç§ã¯èœã¡èŸŒãã§ããŸã£ãã®ã§ããã©ã€ãã«ã¯ã§äº€æµäŒã°ã«ãŒããç«ã¡äžããããšã«ããŸãããããã§ãªããã°ããã®ãããªã°ã«ãŒãã¯ã©ãã«ããªãã£ãããã§ããç§ã¯ãªã³ã©ã€ã³ã®Dockerã³ãã¥ããã£ã»ãªãŒã«ãã³ãºãšãªã³ã©ã€ã³ã®KubeConã«åå ãããã®éãåããŠã®ããŒãã¢ãããéå¬ããããã®å Žæãæ¢ããŠããŸããã
ã³ãŒããŒãæã£ãŠè¡ããŸãïŒ
2022ã§ãç§ãæ¡çšããããšããCEOããLinkedInã®ã¡ãã»ãŒãžãå±ããŸãããç§ã¯åœŒã«ãæ°ããå¥çŽãçµãã ã°ããã ãã©ãä»ã®ã³ã©ãã¬ãŒã·ã§ã³ã«ã€ããŠã話ãåãããããšäŒãããç§ãã¡ã¯ããŒãã£ã³ã°ãèšå®ããç§ã¯ãã³ãŒããŒãæåããŸãïŒããšæžããŸããã圌ãã®ãªãã£ã¹ãç§ã®äœãã§ãã建ç©ãšåã建ç©ã«ãã£ãããã§ããç§ã¯ããã«ãŒãã©ã³ãã®ãã°ã«ããã«ã³ãŒããŒïŒãã«ã¯ã®æã¿ãã€ããã«ãã§ã¯ã¬ãïŒãå
¥ããŠããããžéããŠè¡ãããããã«ã¡ã¯ããè¿æããïŒããšèšããŸããã圌ãã¯å¯Ÿé¢åŒã®DockerããŒãã¢ãããéå¬ããããšã§åæããã
ç§ãã¡ã®æåã®ããŒãã¢ããã¯11æ2022ã«éå¬ãããåå è ã¯ãã©ã³ã¹ã®ã¹ãã©ã¹ããŒã«ããæ¥ããã£ã1人ã§ãããçµå±ãããã«ããã®ã¯åœŒãšç§ã®åŠ»ãšç§ã嵿¥è ã®ã²ãšããšåœŒå¥³ã®ããŒã€ãã¬ã³ãããããŠäŒç€Ÿã®ãšã³ãžãã¢ã ã£ãã
2åç®ã®éãŸãã¯ãDocker Community All HandsãèŠèŽããäŒã§ããããã®æç¹ã§ãç§ã¯Dockerã®ããã°ã«2ã€ã®èšäºãæ²èŒãããã®ã€ãã³ãã§è¬æŒãè¡ããæåªç§Dockerã³ãã¥ããã£ãªãŒããŒã®ç§°å·ãç²åŸããŠããŸããã
ç§ã2023幎åé ã«ãã£ããã³ã«å¿åãããšããDockerã§ã¯ãã§ã«å€ãã®äººãç§ã®ããšãç¥ã£ãŠããŸããã
æ¥å¹Žã®å人çãªç®æšã¯äœã§ãã?
æè²ãšã¹ããŒãªãŒããªã³ã°ã«ããã«åãå ¥ããŠããããã
ç§ã¯æè¿ã 1865ãã©ã€ãã«ã¯ãèå°ã«ãããã¡ã³ã¿ãžãŒç©èªãé»ã森ã®åœ±ããåºçããŸããããã®ç©èªã¯ãç©èªãéããŠã³ã³ããã»ãã¥ãªãã£ãæãããã®ã§ããããã¯ç§ãæ¢æ±ããŠãããã倧ããªã¢ã€ãã¢ã®äžéšã§ããã€ãŸããè€éãªDevOpsã®æŠå¿µããã¹ããŒãªãŒãããžã¥ã¢ã«ããã£ã©ã¯ã¿ãŒãéããŠèšæ¶ã«æ®ããã®ã«ãããšããããšã§ããç§ãåãçµãã§ããããäžã€ã®ãããžã§ã¯ãã¯ãDockerã³ãã³ãã玹ä»ããã¯ãŒã¯ã·ã§ããã·ãªãŒãºãDocker Commandosãã§ãã
æè¡çãªé¢ã§ã¯ãDockerãšKubernetesã®ã»ãã¥ãªãã£ã«é¢ãã第2çãå·çäžã§ãç¹ã«Dockerã®åŒ·åã€ã¡ãŒãžã«ã€ããŠéç¹çã«åãäžããŠããŸãã

ãã£ãã·ã§ã³: ããã«ãŒã³ãã³ããŒããã¯
ãããŠã³ãã¥ããã£é¢ã§ã¯ããã©ã€ãã«ã¯ã®ããŒãã¢ãããããç¶ç¶çã§ãããåºç¯ãªãšã³ã·ã¹ãã ãšç¹ãããã®ãžãšçºå±ãããŠãããããšèããŠããŸããæ¢ã«Open Container Initiativeæ¯éšã«ããªã£ãŠããŸãããããå¹ åºãå±€ã«ã¢ããŒã«ããããã«JavaãŠãŒã¶ãŒã°ã«ãŒãïŒJUGïŒãç«ã¡äžããããšãæ€èšããŠããŸãã
ããããªãããã¯ãããžãŒæ¥çã§åããŠãããã代ããã«äœãããŠããŸããã?
ããããç§ã¯è«çåŠãç ç©¶ããæ°åŠã®ææã«ãªã£ãŠããã ãããç§ã¯ã€ã©ã³ã§ãæ°åŠçè«çãçšããŠèªç¶èšèªãã¢ãã«åããç¯çææ³ãç ç©¶ãã修士課çšãä¿®äºããŠããŸãããç§ã®ã³ã³ãã¥ãŒã¿ãµã€ãšã³ã¹ã®ä¿®å£«è«æããåºæ¬çã«ã¯æ°çè«çåŠã«é¢ãããã®ã§ããã
ãããã¯ãç§ã¯å€ä»£èšèªã®ç ç©¶è
ã«ãªã£ãŠããã ãããç§ã¯å€ä»£ãã«ã·ã¢èªã®æ¥åœ¢æåãšãçŸåšå®å
šã«ã¯è§£èªãããŠããªãããã©ãŽã£ãŒèªïŒUnicodeã«è¿œå äºå®ïŒãèªãããšãã§ããŸããããç§ãæè¡é¢ä¿ã®ä»äº ããŠããªãã£ããã æ®ãã®è³ªå ã«çããããšã«æéãè²»ãããŠããã§ãããã
Dockerã³ãã¥ããã£ãšã®ã³ã©ãã¬ãŒã·ã§ã³ã§æãåºã«æ®ãã¹ããŒãªãŒãå ±æã§ããŸãã?
ãDockerãšKubernetesã®ã»ãã¥ãªãã£ããšããæžç±ã®åºçã¯ãDockerã³ãã¥ããã£ã®ååãªãã«ã¯å®çŸããªãã£ãã§ããããç©èªã¯ããã ã
ç§ãDocker Captainã«ãªã£ãŠéããªããæè¡ç³»åºç瀟ã®Packtããé£çµ¡ããããäžç·ã«æ¬ãæžããŠã¿ãªãããšèªãããŸãããæåã¯æããŸãããèªåã«ã¯æ¬ãæžãã ãã®ç¥èããªããšæããŠããããã§ãããããã圌ãã®äž»åŒµã¯éåžžã«èª¬åŸåããã£ãã
ãããã2幎åŸãç§ã¯åçš¿ãæžãçµããããããã§ã³ã¹è¶ãã«æãæšãŠãã圌ããéæ³ã®ããã«ä»äºãããŠãããã®ãåŸ ã£ãŠããéã«ãçµç¹åç·šãè¡ãããæçµçã«ç§ã®åœ¹è·ãåªå ããããšã¯ã§ããªããšèšãããŸããã圌ãã¯ç§ã«ãæ°ããåºçç€Ÿãæ¢ãã°ããããšæžããŠãããæ°ããåºç瀟ãèŠã€ãããããã¯ç§èªèº«ã ã£ãã

ãã£ãã·ã§ã³ïŒWeAreDevelopersã«ã³ãã¡ã¬ã³ã¹ã§ã®DockerããŒã¹
ç§ã¯Dockerãã£ããã³ãã¡ã«äœæ¥å 容ã®ã¬ãã¥ãŒãäŸé Œãå§ããŸãããç§ã¯ããŒã¿çããã©ã€ãã«ã¯ã®å°ããªã³ãã¥ããã£ã«é åžããŸããããããŠçºå£²ããããšãå€ãã®Dockerãã£ããã³ãDockerã®åŸæ¥å¡ããããŠDockerã³ãã¥ããã£ã®ã¡ã³ããŒããæ¬ãè³Œå ¥ããããå£ã³ãã§åºãããããããšã§ç§ãå¿æŽããŠãããŸããã
çŸåšãæ°ã«å ¥ãã®Docker補åãæ©èœã¯äœã§ããããããŠãã®çç±ã¯äœã§ãã?
ã·ã£ã€ã»ãã«ãŒããæ·±æ·µã«æœãã§ããããžã£ãã¯ã»ã¶ã»ãããã³ã€ã³ãã€ããŒãè匱ãªãµãŒããŒãã¹ãŠã«æå·é貚ãã€ããŒãã€ã³ã¹ããŒã«ããŠãããããDockerã®åŒ·åã€ã¡ãŒãžãå¿ èŠã§ãããã®ããããšã³ã·ã¹ãã ã¯ãªãŒãã³ãœãŒã¹ã§CVEããªãŒã®åºæ¬ã€ã¡ãŒãžã»ãããå¿ èŠãšããŠããŸãããããŠããã¯ãææé¡§å®¢ã ãã§ãªãããã¹ãŠã®äººã«æäŸãããã¹ãã§ãããªããªããç§ãã¡ã¯çãåãè¹ã«ä¹ã£ãŠããããã§ãã
ãã£ãã·ã§ã³ïŒãããã³ã€ã³ãã€ããŒã®ãžã£ãã¯ãå®è·è ã®ãŽãŒããšæŠã£ãŠãã
æè¿è§£æ±ºããããªãããŒãªæè¡ç課é¡ã«ã€ããŠæããŠããã ããŸãã?
æè¡çãªåé¡èªäœã¯éåžžããã»ã©é£ãããªããã解決çãèšèšããã®ã¯é£ãããéå°èšèšãªã®ãããããšã解決çãåçŽãããŠå°æ¥æ§ããªãã®ãã倿ããã®ã¯é£ãããå é±ãæ°ãããã€ã¯ããµãŒãã¹ãèšèšããŠããã®ã§ããããã®éã«ãèªåã®ãœãªã¥ãŒã·ã§ã³ãå®å šã«ä¿ã€ããã«ããã€ãã®ã«ãŒã«ãèšå®ããŸããã
- 決å®ã¯å»¶æã§ããã¹ãã ããŸã 決å®ãäžããªãã§ãã ããããªããžããªçšã®ã€ã³ã¿ãŒãã§ãŒã¹ãå°å ¥ãããã®å®è£ ãæ³šå ¥ããŸããããã®ãããåŸã§å¥ã®ããŒã¿ããŒã¹ã䜿çšããããšã«ãªã£ãå Žåã§ããæ°ããå®è£ ã远å ããã³ãŒãã1è¡å€æŽããã ãã§ãµãŒãã¹ã«æ³šå ¥ã§ããŸãã
- ç©äºã«ã¯äžã€ã®ããæ¹ãããªãã¹ãã ããããžã§ã¯ããããŒã«ã«ã§å®è¡ããæ¹æ³ã3ã€ããå Žåããããã¯æçµçã«åæãåããªããªãããã¹ãŠãåäœããªããªãã§ããããã¡ã€ã³ãšãªããœãªã¥ãŒã·ã§ã³ã1ã€éžæããŠãã ãããDocker ComposeãDevcontainersãããŒã«ã«ã®npm startããã¹ãŠåæã«å®è¡ããªãã§ãã ããã
- ãã¹ãŠãèªååãããæäœæ¥ã§è¡ãå Žåããã¹ãçºçãããããæéãããããŸãããããã€ã¡ã³ãã§ãSSHã§ãµãŒããŒã«æ¥ç¶ããã³ãããããã·ã¥ã倿ŽããDocker ComposeãµãŒãã¹ãåèµ·åãããšããæé ãèžãã§ãããªããããã¯ééã£ãããæ¹ã§ãã
- AIãä¿¡çšããŠã¯ãããªããç§ã¯ã¯ããŒãã»ã³ãŒãã䜿ã£ãŠããã®ã§ãããååãããã®ç¢ºçã§ãããã¯ãããªãã§ãããããªããããšèšæ£ããªããã°ãªããŸãããããããªãããããã³ã§ã³ãŒããŒã飲ã¿ãªãããAIã«ã³ãŒããæžãããŠãããšããããããã¯å€§æšäºãæãããšã«ãªãã§ããããç ç©¶ã«ãããšãAIãçæããã³ãŒãã®ããªãã®éšåã¯å®å šã§ã¯ãªãããšã瀺ãããŠããã
- å šãŠããã¹ãããŠãã ããããã¹ãŠã«CIãã§ãã¯ã远å ãããç§ã¯ããã©ãŒãããããªã³ãã£ã³ã°ããã¹ãã®å®è¡ãã«ãã¬ããžã®ç¢ºèªãDockerã€ã¡ãŒãžã®è匱æ§ã®ãã§ãã¯ãããã«ã¯ã³ãããã¡ãã»ãŒãžã®äœæãšãã£ãäœæ¥ãæ åœããŠããŸãããã³ãããã¡ãã»ãŒãžã«åºã¥ããŠãã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ã䜿çšããŠããŒãžã§ã³ãèªåçã«æŽæ°ããæ°ãããªãªãŒã¹ãããªã¬ãŒããŸãã
ãã¹ãŠã®éçºè ã«ç¥ã£ãŠãããŠã»ããDockerã®ãã³ãã¯äœã§ãã?
ãã«ãæã«SBOMèªèšŒãçæããã®ã¯éåžžã«ç°¡åã§ããCLIã§ãã©ã°ãæž¡ãããCIãžã§ãã«æ°ããåŒæ°ãèšå®ããããDocker Bakeã䜿çšããŠããå Žåã¯2è¡ã®ã³ãŒãã远å ããã ãã§ãã
ãã£ãã·ã§ã³: SBOM ã®èªèšŒã«ãã CVE ã®çºèŠã容æã«ãªããŸã
CLIã䜿çšããïŒ
$ docker buildx build --sbom=true -t <image> .
Docker Bakeã䜿çšããŠããå ŽåïŒ
variable "TAG" {
default = "latest"
}
variable "REPOSITORY" {
default = "mithra-backend"
}
group "default" {
targets = ["backend"]
}
target "backend" {
context = "."
dockerfile = "Dockerfile"
tags = ["${REPOSITORY}:${TAG}"]
attest = [
{
type = "provenance"
mode = "max"
},
{
type = "sbom"
}
]
}
ãããŠã以äžã®æ¹æ³ã§æ§ç¯ã§ããŸãã
$ docker bake
ãããŠCIã§ã¯ïŒ
- name: Build and push with docker bake
uses: docker/bake-action@v5
with:
files: ./docker-bake.hcl
push: true
ãŸã Docker Bakeã䜿ã£ãŠããªããªããæ€èšããŠã¿ã䟡å€ã¯ãããããã«ãããDockerãã«ããããçŸå³ãããªããŸãã
ãã£ãã·ã§ã³ïŒã¢ã¹ã¬ã«ãã§ããŒãã³ã°ã³ã³ãã¹ããè¡ãããã«ãŒã³ãã³ããŒ
å®ç掻ã§éæè¡çãªãªããžã§ã¯ããã³ã³ããåã§ãããšããããããã¯äœã§ããããããããŠãã®çç±ã¯äœã§ãã?
ç§ã¯äžçã®ã¹ãããã·ã§ãããäœæããã©ã®ããŒãžã§ã³ã«äœã¿ããããéžæã§ããããã«ããã ãããçŸå®éé¿ã®ããã«ããã©ãŒã«ã¢ãŠãïŒãã¥ãŒãã¬ã¹ãããã¬ã€ããããšããããç®èãªè©±ã ãããããå°ãªããšã倧åãšã³ãžã³ã¯æèŒãããŠããã
ãªã³ã©ã€ã³ã§ã©ãã§ããªããèŠã€ããããŸãã?
ç§ã®ãŠã§ããµã€ãã«ã¯ãã¹ãŠã®ãªã³ã¯ãæ²èŒãããŠããŸãïŒ aerabi.com
LinkedInã¯ç§ã®äž»ãªãœãŒã·ã£ã«ã¡ãã£ã¢ãã©ãããã©ãŒã ã§ãããã²ãã©ããŒããŠãã ããïŒ /in/aerabi ã
ãããŠãæãªããã®Twitterãæãããªã£ãæã¯ãæã BlueSkyïŒ @aerabi.com ïŒã«èšäºãæžããŸãã
ã©ããããã¡ã€ã¢ã®è³ªå
ç«ãç¬ã?
ãã¢ã»ãµããšã³ã¹
æå人éãå€å人éã?
åžè¡é¬Œ
奜ããªãããšããé£ã¹ç©ã¯?
ãã§ã»ã³ãžã£ãŒã³ãã§ããããäœãããããªããªãã寿åž
å人ãããªãã衚ãèšèãäžèšã§è¡šçŸããŸãã?
ã¯ã¬ã€ãžãŒ
æè¿å§ããè¶£å³ã¯?
ããŒã¯ãã¡ã³ã¿ãžãŒãå·çãããæ£çŽãªãšãããæè¿ã¯åã«ããã³ãã£ã¯ã·ã§ã³ããšåŒãã§ããŸãã
