ã³ã³ããåã®äžçã§ã¯ãã»ãã¥ãªãã£ãšé©åãªãŠãŒã¶ãŒç®¡çã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ãšã»ãã¥ãªãã£ã«å€§ããªåœ±é¿ãäžããå¯èœæ§ã®ããéèŠãªåŽé¢ã§ãã Dockerfile ã® USER åœä»€ ã¯ãã€ã¡ãŒãžã®ãã«ã ããã»ã¹äžãšã³ã³ãããŒã®å®è¡æã®äž¡æ¹ã§ã³ãã³ããå®è¡ãããŠãŒã¶ãŒã決å®ããåºæ¬çãªããŒã«ã§ãã ããã©ã«ãã§ã¯ã USER ãæå®ãããŠããªãå ŽåãDockerã¯rootãŠãŒã¶ãŒãšããŠã³ãã³ããå®è¡ãããããé倧ãªã»ãã¥ãªãã£ãªã¹ã¯ãçããå¯èœæ§ããããŸããÂ
ãã®ããã°æçš¿ã§ã¯ã USER åœä»€ã«é¢é£ãããã¹ããã©ã¯ãã£ã¹ãšäžè¬çãªèœãšã穎ã«ã€ããŠæãäžããŸãã ããã«ããããã®ãã©ã¯ãã£ã¹ã®éèŠæ§ã説æããããã®å®è·µçãªãã¢ãæäŸããŸãã USERåœä»€ãçè§£ããæ£ããå®è£
ããããšã¯ãå®å
šã§å¹ççãªDockerç°å¢ãç¶æããããã«äžå¯æ¬ ã§ãããŠãŒã¶ãŒæš©éã广çã«ç®¡çããDockerã³ã³ãããå®å
šãã€æå³ãããšããã«å®è¡ãããããã«ããæ¹æ³ãæ¢ã£ãŠã¿ãŸãããã

Docker DesktopÂ
æäŸãããŠããã³ãã³ããšäŸã¯ãçµ±åã³ã³ããŒãã³ããšã㊠Docker Engine ãå«ã Docker Desktop ã§ã®äœ¿çšãç®çãšããŠããŸãããããã®ã³ãã³ããDocker Community Edition(ã¹ã¿ã³ãã¢ãã³ã®Dockerãšã³ãžã³)ã§å®è¡ããããšã¯å¯èœã§ãããåºåããã®èšäºã«ç€ºãããŠãããã®ãšäžèŽããªãå ŽåããããŸãã ããã°èšäº ãHow to Check Your Docker Installation: Docker Desktop vs. Docker Engine ãã§ã¯ãéããšã䜿çšããŠãããã®ã倿ããæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã
UID/GID: 埩ç¿
ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠèª¬æããåã«ãUID / GIDã®æŠå¿µãšãDockerã䜿çšããéã«ããããéèŠã§ããçç±ã確èªããŸãããã ãã®é¢ä¿ã¯ããããã®ãã¹ã ãã©ã¯ãã£ã¹ã®ã»ãã¥ãªãã£é¢ã«å€§ãã圱é¿ããŸãã
Linuxããã³ãã®ä»ã®Unixã©ã€ã¯ãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãUID(ãŠãŒã¶ãŒID)ãšåŒã°ããåã ã®ãŠãŒã¶ãŒãèå¥ããããã«æ°å€èå¥åã䜿çšããŸãã ã°ã«ãŒãã¯ãå¥ã®æ°å€èå¥åã§ãã GID (ã°ã«ãŒã ID) ã«ãã£ãŠèå¥ãããŸãã ãããã®æ°å€èå¥åã¯ã ãŠãŒã¶å ãš ã°ã«ãŒãåã«äœ¿çšãããããã¹ãæååã«ãããã³ã°ãããŸãããæ°å€èå¥åã¯ã·ã¹ãã ã«ãã£ãŠå éšçã«äœ¿çšãããŸãã
ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã¯ããããã®èå¥åã䜿çšããŠãã·ã¹ãã ãªãœãŒã¹ããã¡ã€ã«ãããã³ãã£ã¬ã¯ããªãžã®ã¢ã¯ã»ã¹èš±å¯ãšã¢ã¯ã»ã¹ã管çããŸãã ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªã«ã¯ãUID ã GID ãªã©ã®æææš©èšå®ããããã©ã®ãŠãŒã¶ãŒãã°ã«ãŒããã¢ã¯ã»ã¹æš©ãæã€ããæ±ºãŸããŸãã ãŠãŒã¶ãŒã¯è€æ°ã®ã°ã«ãŒãã®ã¡ã³ããŒã«ãªãããšãã§ãããããæš©é管çãè€éã«ãªãå¯èœæ§ããããŸãããæè»ãªã¢ã¯ã»ã¹å¶åŸ¡ãæäŸãããŸãã
Docker ã§ã¯ããããã® UID ãš GID ã®æŠå¿µã¯ ã³ã³ãããŒå ã§ä¿æãããŸãã Dockerã³ã³ãããå®è¡ãããšãã«ãUIDãšGIDãæå®ãããç¹å®ã®ãŠãŒã¶ãŒãšããŠå®è¡ããããã«æ§æã§ããŸãã ããã«ãããªã¥ãŒã ãããŠã³ãããå ŽåãDocker ã¯ãã¹ããã·ã³äžã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªã® UID ãš GID ãå°éãããããã³ã³ãããŒå ãããã¡ã€ã«ã«ã¢ã¯ã»ã¹ããã倿Žãããããæ¹æ³ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã ãã®ããã«Unixã©ã€ã¯ãªUID/GID管çã«åŸãããšã§ããã¹ãç°å¢ãšã³ã³ããåãããç°å¢ã®äž¡æ¹ã§äžè²«ããã»ãã¥ãªãã£ãšã¢ã¯ã»ã¹å¶åŸ¡ãç¶æããããšãã§ããŸããÂ
ã°ã«ãŒã
USERãšã¯ç°ãªããDockerfile åœä»€ã«ã¯ GROUP ãã£ã¬ã¯ãã£ãã¯ãããŸãããã°ã«ãŒããèšå®ããã«ã¯ããŠãŒã¶ãŒå (UID) ã®åŸã«ã°ã«ãŒãå (GID) ãæå®ããŸãã ããšãã°ãci ã°ã«ãŒãã®èªååãŠãŒã¶ãŒãšããŠã³ãã³ããå®è¡ããã«ã¯ãDockerfile ã« USER automation:ci ãèšè¿°ããŸãã
GID ãæå®ããªãå Žåã¯ããŠãŒã¶ãŒ ã¢ã«ãŠã³ããå±ããã°ã«ãŒãã®äžèЧã䜿çšãããŸãã ãã ããGID ãæå®ããå Žåã¯ããã® GID ã®ã¿ ã䜿çšãããŸããÂ
çŸåšã®ãŠãŒã¶ãŒ
Docker Desktop ã¯ä»®æ³ãã·ã³ (VM) ã䜿çšããããããã¹ã (LinuxãMacãWindows HyperV/WSL2) äžã®ãŠãŒã¶ãŒ ã¢ã«ãŠã³ãã® UID/GID ã¯ãDocker VM å ã§ã¯ã»ãŒç¢ºå®ã«äžèŽããŸããã
UID/GIDã¯ã id ã³ãã³ãã䜿çšããŠãã€ã§ã確èªã§ããŸãã ããšãã°ãç§ã®ãã¹ã¯ãããã§ã¯ããã©ã€ããªGIDã20ã®UID503ã§ãã
$ id
uid=503(jschmidt) gid=20(staff) groups=20(staff),<--SNIP-->
ããããã®æ¹æ³
root以å€ã®ãŠãŒã¶ãŒã䜿çšããŠrootã¢ã¯ã»ã¹ãå¶éãã
äžèšã®ããã«ãããã©ã«ãã§ã¯Dockerã³ã³ããã¯UID 0ããŸãã¯rootãšããŠå®è¡ãããŸãã ã€ãŸããDockerã³ã³ããã䟵害ãããå Žåãæ»æè ã¯ã³ã³ããã«å²ãåœãŠããããã¹ãŠã®ãªãœãŒã¹ã«å¯ŸããŠãã¹ãã¬ãã«ã®ã«ãŒãã¢ã¯ã»ã¹æš©ãæã€ããšã«ãªããŸãã root以å€ã®ãŠãŒã¶ãŒã䜿çšãããšãæ»æè ãã³ã³ããã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ããæãåºãããšãã§ãããšããŠããã³ã³ãããroot以å€ã®ãŠãŒã¶ãŒãšããŠå®è¡ãããŠããå Žåãæ»æè ã®æš©éã¯å¶éãããŸããÂ
Dockerfile ã« USER ãèšå®ããªãå ŽåããŠãŒã¶ãŒã¯ããã©ã«ãã§ root ã«ãªãããšã«æ³šæããŠãã ããã ã³ã³ãããŒã誰ãšããŠå®è¡ãããããæç¢ºã«ããå Žåã§ããåžžã«æç€ºçã«ãŠãŒã¶ãŒãèšå®ããŸãã
UIDãšGIDã§ãŠãŒã¶ãŒãæå®ãã
ãŠãŒã¶ãŒåãšã°ã«ãŒãåã¯ç°¡åã«å€æŽã§ããLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ããšã«ã·ã¹ãã ãŠãŒã¶ãŒãšã°ã«ãŒãã«ç°ãªãããã©ã«ãå€ãå²ãåœãŠãããšãã§ããŸãã UID/GID ã䜿çšãããšãã³ã³ããã® /etc/passwd ãã¡ã€ã«ã倿Žããããããã£ã¹ããªãã¥ãŒã·ã§ã³éã§ç°ãªã£ãŠãããããŠãããŠãŒã¶ãŒãäžè²«ããŠèå¥ãããããã«ããããšãã§ããŸãã äŸãã°ïŒ
USER 1001:1001
ã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ãŠãŒã¶ãŒãäœæãã
ã¢ããªã±ãŒã·ã§ã³ã«ç¹å®ã®ã¢ã¯ã»ã¹èš±å¯ãå¿
èŠãªå Žåã¯ãDockerfile ã§ã¢ããªã±ãŒã·ã§ã³å°çšã®ãŠãŒã¶ãŒãäœæããããšãæ€èšããŠãã ããã ããã¯ã RUN ã³ãã³ãã䜿çšããŠãŠãŒã¶ãŒã远å ããããšã§å®è¡ã§ããŸããÂ
ãŠãŒã¶ãŒãäœæããŠãã Dockerfile å
ã§ãã®ãŠãŒã¶ãŒã«åãæ¿ããå ŽåãUID/GID 㯠useradd ã³ãã³ãã䜿çšããŠã€ã¡ãŒãžã®ã³ã³ããã¹ãå
ã§èšå®ããããããUID/GID ã䜿çšããå¿
èŠã¯ãããŸããã åæ§ã«ã RUN ã³ãã³ãã䜿çšããŠããŠãŒã¶ãŒãã°ã«ãŒãã«è¿œå (ããã³å¿
èŠã«å¿ããŠã°ã«ãŒããäœæ)ã§ããŸãã
èšå®ãããŠãŒã¶ãŒã«ãã³ã³ãããŒã§ã³ãã³ããå®è¡ããããã«å¿ èŠãªæš©éãããããšã確èªããŸãã ããšãã°ãroot 以å€ã®ãŠãŒã¶ãŒã«ã¯ã 1024ããäžã®ããŒãã«ãã€ã³ãããããã«å¿ èŠãªæš©éããªãå¯èœæ§ããããŸãã äŸãã°ïŒ
RUN useradd -ms /bin/bash myuser
USER myuser
ç¹æš©æäœã®ã«ãŒããžã®åãæ¿ã
é root ãŠãŒã¶ãŒãèšå®ããåŸã« Dockerfile ã§ç¹æš©æäœãå®è¡ããå¿
èŠãããå Žåã¯ãroot ãŠãŒã¶ãŒã«åãæ¿ãããããã®æäœãå®äºãããé root ãŠãŒã¶ãŒã«æ»ãããšãã§ããŸãã ãã®ã¢ãããŒãã¯ãæå°ç¹æš©ã®ååã«åŸããŸãã管çè
æš©éãå¿
èŠãšããã¿ã¹ã¯ã®ã¿ã管çè
ãšããŠå®è¡ãããŸãã Dockerfile ã§ã®ç¹æš©ææ Œã« sudo ã䜿çšããããšã¯ãå§ãããŸããã äŸãã°ïŒ
USER root
RUN apt-get update && apt-get install -y some-package
USER myuser
USERãšWORKDIRã®çµã¿åãã
åè¿°ã®ããã«ãã³ã³ããå ã§äœ¿çšãããUID/GIDã¯ãã³ã³ããå ãšãã¹ãã·ã¹ãã ã®äž¡æ¹ã«é©çšãããŸãã ããã«ãããæ¬¡ã® 2 ã€ã®äžè¬çãªåé¡ãçºçããŸãã
- root以å€ã®ãŠãŒã¶ãŒã«åãæ¿ããŠã䜿çšãããã£ã¬ã¯ããªã®èªã¿åããŸãã¯æžã蟌ã¿ã®æš©éããªã(ããšãã°ã
/ã®äžã«ãã£ã¬ã¯ããªãäœæããããšãããã/rootã§æžã蟌ãããšãããããŸãã - ãã¹ãã·ã¹ãã ãããã£ã¬ã¯ããªãããŠã³ãããããŠã³ãå ã®ãã£ã¬ã¯ããªãŸãã¯ãã¡ã€ã«ã«å¯Ÿããèªã¿åã/æžãèŸŒã¿æš©éãæããªããŠãŒã¶ãŒã«åãæ¿ããã
USER root
RUN mkdir /app&&chown ubuntu
USER ubuntu
WORKDIR /app
äŸ
次ã®äŸã¯ãDockerfile ã®èšè¿°æ¹æ³ã«å¿ããŠãããŸããŸãªã·ããªãªã§ UID ãš GID ãã©ã®ããã«åäœãããã瀺ããŠããŸãã ã©ã¡ãã®äŸããå®è¡äžã® Docker ã³ã³ãããŒã® UID/GID ã瀺ãåºåãæäŸããŸãã ãã®æé ã«åŸãå Žåã¯ãDocker Desktop ã®ã€ã³ã¹ããŒã«ãå®è¡ãã docker ã³ãã³ãã«é¢ããåºæ¬çãªç¥èãå¿
èŠã§ãã
æšæº Dockerfile
ã»ãšãã©ã®äººã¯ã Docker ãæåã«äœ¿ãå§ãããšãã«ãã®ã¢ãããŒããåããŸãããããã¯ããã©ã«ãã䜿çšãã USERãæå®ããŸããã
# Use the official Ubuntu image as the base
FROM ubuntu:20.04
# Print the UID and GID
CMD sh -c "echo 'Inside Container:' && echo 'User: $(whoami) UID: $(id -u) GID: $(id -g)'"
Dockerfile ãš USER
ãã®äŸã§ã¯ãDockerfile å
ã§ RUN ã³ãã³ãã䜿çšããŠãŠãŒã¶ãŒãäœæãããã® USERã«åãæ¿ããæ¹æ³ã瀺ããŸãã
# Use the official Ubuntu image as the base
FROM ubuntu:20.04
# Create a custom user with UID 1234 and GID 1234
RUN groupadd -g 1234 customgroup && \
useradd -m -u 1234 -g customgroup customuser
# Switch to the custom user
USER customuser
# Set the workdir
WORKDIR /home/customuser
# Print the UID and GID
CMD sh -c "echo 'Inside Container:' && echo 'User: $(whoami) UID: $(id -u) GID: $(id -g)'"
æ¬¡ã®æ¹æ³ã§ 2 ã€ã®ã€ã¡ãŒãžããã«ãããŸãã
$ docker build -t default-user-image -f Dockerfile1 .
$ docker build -t custom-user-image -f Dockerfile2 .
ããã©ã«ãã®Dockerã€ã¡ãŒãž
æåã®ã€ã¡ãŒãžã§ããã USER ã³ãã³ããæäŸããªãã€ã¡ãŒãžãå®è¡ããŠã¿ãŸãããã ã芧ã®ãšãããUID ãš GID 㯠0/0ã§ãããããã¹ãŒããŒãŠãŒã¶ãŒã¯ rootã§ãã ããã«ã¯2ã€ã®ããšãåããŠããŸãã ãŸããDockerfile ã§ UID/GID ãå®çŸ©ããŠããªããããDocker ã¯ããã©ã«ãã§ã¹ãŒããŒãŠãŒã¶ãŒã«ãªããŸãã ããããç§ã®ã¢ã«ãŠã³ããã¹ãŒããŒãŠãŒã¶ãŒã¢ã«ãŠã³ãã§ãªãå Žåãã©ã®ããã«ã¹ãŒããŒãŠãŒã¶ãŒã«ãªãã®ã§ãããã? ããã¯ãDocker Engine ã root æš©éã§å®è¡ããããããroot ãšããŠå®è¡ããããã«ãã«ããããã³ã³ããã Docker Engine ããæš©éãç¶æ¿ããããã§ãã
$ docker run --rm default-user-image
Inside Container:
User: root UID: 0 GID: 0
Custom User Docker Image
ã«ã¹ã¿ã Docker ã€ã¡ãŒãž
ãããä¿®æ£ããŸããã â Dockerã³ã³ãããrootãšããŠå®è¡ããããšã¯æ¬åœã«æãŸãããããŸããã ãã®ããããã®ããŒãžã§ã³ã§ã¯ããŠãŒã¶ãŒãšã°ã«ãŒãã®UIDãšGIDãæç€ºçã«èšå®ããŸãã ãã®ã³ã³ãããå®è¡ãããšããŠãŒã¶ãŒãé©åã«èšå®ãããŠããããšãããããŸãã
$ docker run --rm custom-user-image
Inside Container:
User: customuser UID: 1234 GID: 1234
ãã¹ããã©ã¯ãã£ã¹ã®å®æœ
ã©ã®ãããªç°å¢ã§ããã¹ããã©ã¯ãã£ã¹ãé©çšããããšã¯å°é£ãªå Žåãããããã®èšäºã§æŠèª¬ãããŠãããã¹ããã©ã¯ãã£ã¹ãäŸå€ã§ã¯ãããŸããã Docker ã¯ãçµç¹ãã»ãã¥ãªãã£ãšã³ã³ãã©ã€ã¢ã³ã¹ãšã€ãããŒã·ã§ã³ãšä¿ææ§ã®ãã©ã³ã¹ãåžžã«åã£ãŠããããšãçè§£ããŠããããã®åãçµã¿ãæ¯æŽããæ¹æ³ã«ç¶ç¶çã«åãçµãã§ããŸãã Hardened Docker Desktop ã®äžéšã§ãã Enhanced Container Isolation(ECI) ãªãã¡ãªã³ã°ã¯ãã³ã³ãããrootãšããŠå®è¡ããããšã®åé¡ç¹ã«å¯ŸåŠããããã«èšèšãããŠããŸãã
ãŠãŒã¶ãŒåå空éãªã©ã®åŒ·åãããã³ã³ãããŒåé¢ã¡ã«ããºã ã¯ãç¹æš©ããã广çã«åé¢ããã³ç®¡çããã®ã«åœ¹ç«ã¡ãŸãã ãŠãŒã¶ãŒåå空éã¯ããŠãŒã¶ãŒ ID ãã°ã«ãŒã ID ãªã©ã®ã»ãã¥ãªãã£é¢é£ã®èå¥åãšå±æ§ãåé¢ããŠãã³ã³ãããŒå ã® root ãŠãŒã¶ãŒãã³ã³ãããŒå€ã® root ãŠãŒã¶ãŒã«ããããããªãããã«ããŸãã ãã®æ©èœã«ãããæ»æè ãã³ã³ããã䟵害ããå Žåã§ããæœåšçãªæå®³ãšã¢ã¯ã»ã¹ç¯å²ãã³ã³ããåãããç°å¢ã«éå®ãããå šäœçãªã»ãã¥ãªãã£ãå€§å¹ ã«åŒ·åããããããç¹æš©ãšã¹ã«ã¬ãŒã·ã§ã³ã®ãªã¹ã¯ãå€§å¹ ã«è»œæžãããŸãã
ããã«ã Docker Scout ããŠãŒã¶ãŒã®ãã¹ã¯ãããã§æŽ»çšããŠãCVEã ãã§ãªãããã¹ããã©ã¯ãã£ã¹ã«é¢ããããªã·ãŒ(ããšãã°ãã€ã¡ãŒãžãroot以å€ã®ãŠãŒã¶ãŒãšããŠå®è¡ãããå¿ é ã®LABELãå«ãŸããŠããããšã確èªãããªã©)ãé©çšã§ããŸãã
ã»ãã¥ãªãã£ã®ç¢ºä¿
ãã®ãã¢ãéããŠãæœåšçãªæ»æå¯Ÿè±¡é åãæå°éã«æããŠã»ãã¥ãªãã£ã匷åããããã«äžå¯æ¬ ãªãDockerã³ã³ãããérootãŠãŒã¶ãŒãšããŠå®è¡ããããã«æ§æããããšã®å®éçãªåœ±é¿ãšå©ç¹ã確èªããŸããã 瀺ããããã«ãDockerã¯ãç¹ã«æå®ããªãéããæ¬è³ªçã«rootæš©éã§ã³ã³ãããå®è¡ããŸãã ãã®ããã©ã«ãã®åäœã¯ãç¹ã«ã³ã³ããã䟵害ãããå Žåã«é倧ãªã»ãã¥ãªãã£ãªã¹ã¯ã«ã€ãªããå¯èœæ§ããããæ»æè ã«ãã¹ããŸãã¯Dockerãšã³ãžã³ãžã®åºç¯ãªã¢ã¯ã»ã¹ãèš±å¯ããå¯èœæ§ããããŸãã
ã«ã¹ã¿ã ãŠãŒã¶ãŒ ID ãšã°ã«ãŒã ID ã䜿çšãã
ã«ã¹ã¿ã ãŠãŒã¶ãŒ ID ãšã«ã¹ã¿ã ã°ã«ãŒã ID ã®äœ¿çšã¯ãããå®å šãªãã©ã¯ãã£ã¹ã瀺ããŠããŸãã UIDãšGIDãæç€ºçã«èšå®ããããšã§ãDockerã³ã³ããå ã§å®è¡ãããããã»ã¹ã®æš©éãšæ©èœãå¶éããç¹æš©ãŠãŒã¶ãŒã¢ã¯ã»ã¹ã«é¢é£ãããªã¹ã¯ã軜æžããŸãã Dockerã³ã³ããå ã§å®çŸ©ãããUID/GIDã¯ããã¹ãã·ã¹ãã äžã®å®éã®ãŠãŒã¶ãŒã«å¯Ÿå¿ããå¿ èŠããªããããåé¢ãšã»ãã¥ãªãã£ã匷åãããŸãã
ãŠãŒã¶ãŒåå空é
ãã®æçš¿ã§ã¯ãDockerã® USER åœä»€ãå¹
åºãã«ããŒããŠããŸãããDockerç°å¢ãä¿è·ããããã®å¥ã®ã¢ãããŒãã«ã¯ãåå空éãç¹ã«ãŠãŒã¶ãŒåå空éã®äœ¿çšãå«ãŸããŸãã ãŠãŒã¶ãŒåå空éã¯ããŠãŒã¶ãŒ ID ãã°ã«ãŒã ID ãªã©ã®ã»ãã¥ãªãã£é¢é£ã®èå¥åãšå±æ§ãããã¹ããšã³ã³ãããŒã®éã§åé¢ããŸããÂ
ãŠãŒã¶ãŒåå空éãæå¹ã«ãããšãDocker ã¯ã³ã³ãããŒå ã®ãŠãŒã¶ãŒ ID ãšã°ã«ãŒã ID ããã¹ã ã·ã¹ãã äžã®éç¹æš© ID ã«ãããã³ã°ã§ããŸãã ãã®ãããã³ã°ã«ãããã³ã³ããã®ããã»ã¹ããã¬ã€ã¯ã¢ãŠãããŠDockerã³ã³ããå ã§rootæš©éãç²åŸããå Žåã§ãããã¹ããã·ã³äžã§ã¯rootæš©éãæã¡ãŸããã ãã®è¿œå ã®ã»ãã¥ãªãã£ã¬ã€ã€ãŒã¯ãæš©éã®ææ Œãé²ããæœåšçãªæå®³ã軜æžããã®ã«åœ¹ç«ã¡ãDockerã»ãã¥ãªãã£ãã¬ãŒã ã¯ãŒã¯ãããã«åŒ·åããããšããŠãã人ã«ãšã£ãŠäžå¯æ¬ ãªèæ ®äºé ã«ãªããŸãã Dockerã®ECIãªãã¡ãªã³ã°ã¯ãã»ãã¥ãªãã£ãã¬ãŒã ã¯ãŒã¯ã®äžéšãšããŠãŠãŒã¶ãŒåå空éãæŽ»çšããŸãã
çµè«
ç¹ã«éçºç°å¢ãDocker Desktopã«ã³ã³ããããããã€ããéã«ã¯ããã®æçš¿ã§æŠèª¬ãããŠããã³ã³ããã®æ§æãšåé¢ã®åŽé¢ãèæ ®ããŠãã ããã 匷åãããã³ã³ããå颿©èœãåãã匷åãããDocker Desktopãªã©ã Docker Businessã§å©çšå¯èœãªåŒ·åãããã»ãã¥ãªãã£æ©èœãå®è£ ããããšã§ããªã¹ã¯ãããã«è»œæžããã¢ããªã±ãŒã·ã§ã³ã®å®å šã§å ç¢ãªéçšç°å¢ã確ä¿ã§ããŸãã
ããã«è©³ãã
- Dockerfile ãªãã¡ã¬ã³ã¹ ã¬ã€ãããèªã¿ãã ããã
- Docker ãã¹ã¯ãããã®ææ°ãªãªãŒã¹ãå ¥æããŸãã
- Docker ã¬ã€ããã芧ãã ããã
- ããã«ãŒã¯åããŠã§ãã? å§ããŸãããã
- Docker Newsletter ã賌èªããŠãã ããã