º£²ó¤Ï¡¢¡ÖWSL¤ÇDocker¤ò»È¤¦¡×¤Î2²óÌܤȤ·¤Æ¡¢WSL¤ËľÀÜDocker¥¨¥ó¥¸¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÊýË¡¤ò²òÀ⤹¤ë¡£¤³¤Îµ­»ö¤Ç¤ÏÀèƬ¤òÂçʸ»ú¤Ë¤·¤¿Docker¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Î̾¾Î¤È¤·¤Æ¤ÎDocker¤òɽ¤·¡¢ÀèƬ¤¬¾®Ê¸»ú¤Î¾ì¹ç¡¢¥Ñ¥Ã¥±¡¼¥¸Ì¾¤ä¥³¥Þ¥ó¥É̾¤Ë¤Ê¤ë¡£

¡ÈDocker Desktop¡É¤ò¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¥³¥ó¥Æ¥Ê¤òÆ°¤«¤¹¾ì¹ç¤ò¡ÖDocker¥Ç¥¹¥¯¥È¥Ã¥×¡×¤Èɽµ­¤·¡¢WSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥óÆâ¤Ç¡¢LinuxÍѤÎdocker¥Ñ¥Ã¥±¡¼¥¸¡Êdocker-ce¡£docker container engine¡Ë¤ò¡¢»È¤Ã¤ÆDocker¤òÆ°¤«¤¹¤³¤È¤ò¡ÖDocker¥¨¥ó¥¸¥ó¡×¤Èɽµ­¤¹¤ë¡£

ɾ²Á¤Ï¡¢Windows 11 Ver.23H2¡ÊOS¥Ó¥ë¥É22631.3593)¾å¤ÎWSL¤Ç¹Ô¤¤¡¢WSL¤Ï°ÂÄêÈÇv2.1.5¡Êwsl.exe --version¤Ç³Îǧ¡Ë¤Ç¤¢¤ë¡£

Docker¥¨¥ó¥¸¥ó¤ÈDocker¥Ç¥¹¥¯¥È¥Ã¥×¤ÎÊ»ÍÑ

Docker Desktop¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢WSL¤Î¥Ç¥Õ¥©¥ë¥È¡¦¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ï¡¢WSL integration¤¬Í­¸ú¤Ë¤Ê¤ê¡¢Docker Desktop¤òÍøÍѤ¹¤ëDocker cli¡Ê¥³¥Þ¥ó¥É¥é¥¤¥ó¤Îdocker¥³¥Þ¥ó¥É¡Ë¤¬¼«Æ°Åª¤ËÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤³¤ì¤Ï¡¢Docker Desktop¤ÈƱ¤¸¥³¥ó¥Æ¥Ê´Ä¶­¤ò»È¤¦¤â¤Î¤Ç¡¢PowerShell¤Ê¤É¤Ç¼Â¹Ô¤¹¤ëdocker¥³¥Þ¥ó¥É¤ÈƱÅù¤Ë¤Ê¤ë¡£¤³¤ì¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢WSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ËDocker¥¨¥ó¥¸¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤â¤½¤ì¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£

¤³¤Î¤¿¤á¡¢WSL¤ÇDocker¥¨¥ó¥¸¥ó¤ò»È¤¦¾ì¹ç¡¢Docker Desktop¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤¤¡£¤¢¤ë¤¤¤Ï¡¢Docker Desktop¤ÎÀßÄê ¢Í Resources ¢Í WSL integration ¢Í Enable integration with my default WSL distro¤ò¡¢¥ª¥Õ¤Ë¤¹¤ë¡Ê¼Ì¿¿01¡Ë¡£¤³¤ÎÀßÄê¤Î²¼¤ÎEnable integration with additional distros:¤Ë¤¢¤ë¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¥È¥°¥ë¥¹¥¤¥Ã¥Á¤¬¥ª¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð¡¢¤³¤ì¤ò¥ª¥Õ¤Ë¤¹¤ë¡£¤³¤ì¤Ç¡¢WSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ËDocker¥¨¥ó¥¸¥ó¤òÆÈΩ¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë½àÈ÷¤¬¤Ç¤­¤¿¡£

¼Ì¿¿01: Docker Desktop¤Ë¤Ï¡¢WSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç¤â¡¢Win32¦¤ÎPowerShell¤ÈƱ¤¸¤¯Docker¥Ç¥¹¥¯¥È¥Ã¥×¦¤Îcli¤ò»È¤¦¡ÖWSL integration¡×µ¡Ç½¤¬¤¢¤ë¡£¤³¤Îµ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢WSL¦¤Îcli¥³¥Þ¥ó¥É¡Êdocker¥³¥Þ¥ó¥É¡Ë¤Ï¡¢Docker¥Ç¥¹¥¯¥È¥Ã¥×¤Î¥³¥ó¥Æ¥Ê¤ËÂФ·¤ÆƯ¤¯¡£WSL¦¤ÇDocker¥¨¥ó¥¸¥ó¤òÆ°¤«¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Îµ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë

WSL¤ËľÀÜDocker¥¨¥ó¥¸¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë

Docker¥¨¥ó¥¸¥ó¤ò»È¤¦¾ì¹ç¡¢WSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÎÃæ¤Ç¡¢¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¡£docker¤Ï¡¢Æȼ«¤Î¥ê¥Ý¥¸¥È¥ê¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¥³¥Þ¥ó¥É¤ËÂФ·¤Æ¡¢¥ê¥Ý¥¸¥È¥ê¤ä¾ÚÌÀ½ñ¤ÎÅÐÏ¿¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£¤³¤ÎÀßÄê¤ò¹Ô¤Ã¤Æ¤ª¤¯¤³¤È¤Ç¡¢°Ê¸ådocker¥¨¥ó¥¸¥ó¤ò¡¢¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Í¡¼¥¸¥ã¡¼·Ðͳ¤Ç¥¢¥Ã¥×¥Ç¡¼¥È¡Ê¥¢¥Ã¥×¥°¥ì¡¼¥É¡Ë¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ë¡£¤³¤³¤Ç¤Ï¡¢WSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î¤¦¤ÁUbuntu/Ubuntu-22.04¾å¤Ç¡¢Docker¥¨¥ó¥¸¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëÊýË¡¤ò²òÀ⤹¤ë¡£apt/dpkg·Ï¤Î¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Í¡¼¥¸¥ã¡¼¤ò»È¤Ã¤Æ¤¤¤ì¤Ð¡¢¼ê½ç¤Ï¤Û¤ÜƱ¤¸¤À¤¬¡¢¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Í¡¼¥¸¥ã¤¬°Û¤Ê¤ë¾ì¹ç¤Ë¤Ï¡¢¥³¥Þ¥ó¥É¤â°Û¤Ê¤ëÅÀ¤ËÃí°Õ¤µ¤ì¤¿¤¤¡£Â¾¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤â´Þ¤á¤ÆDocker¥¨¥ó¥¸¥ó¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ë´Ø¤·¤Æ¤Ï¡¢Docker¤ÎWeb¥µ¥¤¥È¤Î¥Ú¡¼¥¸(Install Docker Engine¡ÃDocker Docs)¤Ç²òÀ⤵¤ì¤Æ¤¤¤ë¡£

¤³¤³¤Ë¤ÏUbuntu¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¡Ê±Ñ¸ì¡Ë¤¬¤¢¤ë¤¬¡¢WSL¤ÎUbuntu/Ubuntu-22.04¤Ç¤Ï¡¢curl¤äca-certificates¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ï½é´ü¥¤¥ó¥¹¥È¡¼¥ë¤Ë´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢/etc/apt/keyring¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤âÀßÄꤺ¤ß¤Ç¤¢¤ê¥¤¥ó¥¹¥È¡¼¥ë¤ÏÉÔÍפǤ¢¤ë¡£

ºÇ½é¤Ë¡Èsudo apt update¡É¤Ç¥Ñ¥Ã¥±¡¼¥¸¤ò¹¹¿·¤·¤Æ¤ª¤¯¡£¼¡¤Ë°Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇDocker¤ÎGPG¥­¡¼¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢/etc/apt/keyring¤ËÊݸ¤¹¤ë¡£¤³¤ì¤Ï¥ê¥Ý¥¸¥È¥ê¤òÅÐÏ¿¤¹¤ë¤Î¤ËɬÍפʺî¶È¤À¡£

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

¼¡¤ËDocker¤Î¥ê¥Ý¥¸¥È¥ê¤òapt¥Ñ¥Ã¥±¡¼¥¸¥Þ¥Í¡¼¥¸¥ã¤ËÅÐÏ¿¤¹¤ë

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

ºÆÅÙ¡¢¡Èsudo apt update¡É¤Ç¥Ñ¥Ã¥±¡¼¥¸¤Î¹¹¿·¤ò¹Ô¤¦¡£

¤½¤Î¸å¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ÇDocker¥¨¥ó¥¸¥ó¤ädocker cli¤Ê¤É¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¡£

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

¥¤¥ó¥¹¥È¡¼¥ë¤¬½ª¤ï¤Ã¤¿¤é¡¢¼«Ê¬¼«¿È¤òdocker¥°¥ë¡¼¥×¤ËÄɲ䷤ơ¢sudo¤ò»È¤ï¤º¤Ëdocker¥³¥Þ¥ó¥É¤òµ¯Æ°¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£¤½¤ì¤Ë¤Ï¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤¦¡£

sudo usermod -aG docker shio

¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¤é¡¢½ê°¥°¥ë¡¼¥×¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¡¢ºÆ¥í¥°¥¤¥ó¤ò¹Ô¤¦¡£Æ±°ì¤ÎWSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤ÏƱ°ì¤Î¥æ¡¼¥¶¡¼¥¢¥«¥¦¥ó¥È¤ò»È¤¦¤Î¤Ç¡¢Ê£¿ô¤ÎWSL¥»¥Ã¥·¥ç¥ó¤¬µ¯Æ°¤·¤Æ¤¤¤ë¤Ê¤é¡¢¤¹¤Ù¤Æ¤òÈ´¤±¤ëɬÍפ¬¤¢¤ë¡£¤¢¤ë¤¤¤Ï¡¢WSL¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Î½ªÎ»¡Êwsl.exe --terminate¡Ë¤ä¡¢WSL¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¡Êwsl --shutdown¡Ë¤ò¹Ô¤¦Êý¤¬¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤¡£

ºÇ¸å¤Ë°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤¤¡¢¥¤¥ó¥¹¥È¡¼¥ë¤äÀßÄ꤬Àµ¾ï¤Ë½ªÎ»¤·¤¿¤«¤ò³Îǧ¤¹¤ë¡£

docker run hello-world

½ÐÎϤˡÖHello from Docker!¡×¤È¤¤¤¦É½¼¨¤¬¡¢½Ð¤Æ¤¤¤ì¤ÐÌäÂê¤Ê¤¤¡Ê¼Ì¿¿02¡Ë¡£

¼Ì¿¿02: Docker¥¨¥ó¥¸¥ó¤Î¥¤¥ó¥¹¥È¡¼¥ë¤¬´°Î»¤·¤¿¤é¡¢docker run hello-world¥³¥Þ¥ó¥É¤Ç¡¢¥Æ¥¹¥ÈÍѤΥ³¥ó¥Æ¥Ê¤òµ¯Æ°¤¹¤ë¡£¤³¤Î¤è¤¦¤Êɽ¼¨¤¬½Ð¤ë¤Ê¤éDocker¥¨¥ó¥¸¥ó¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ÏÀ®¸ù¤Ç¤¢¤ë

¤Ê¤ª¡¢´Ê°×¤ÊÊýË¡¤È¤·¤Æ¡¢docker¤ÎÄ󶡤¹¤ë¥·¥§¥ë¡¦¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤¿ÊýË¡¤¬¤¢¤ë¡£¶ñÂÎŪ¤Ë¤Ï¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¡£

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

1¹ÔÌܤΥ³¥Þ¥ó¥É¤Ç¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È¡Êget-cocker.sh¡Ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢2¹ÔÌܤΥ³¥Þ¥ó¥É¤Ç¼Â¹Ô¤·¤Æ¤¤¤ë¡£¤¿¤À¤·¡¢¤³¤ÎÊýË¡¤Ç¤Ï¡¢Docker¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤Ï¡¢¥æ¡¼¥¶¡¼¼«¿È¤¬¤½¤Î̵ͭ¤ò³Îǧ¤·¤Æ¡¢¼êÆ°¤Ç¹Ô¤ï¤Í¤Ð¤Ê¤é¤Ê¤¤¡£¥Æ¥¹¥È¤Ê¤É¤ÎÌÜŪ¤Ç°ì²ó¤À¤±¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¤Î¤Ë¤Ï¸þ¤¤¤Æ¤¤¤ë¤¬¡¢·Ñ³Ū¤Ë»È¤¦¾ì¹ç¤Ë¤ÏÁ°µ­¤ÎÊýË¡¤ò»È¤¦¤Ù¤­¤À¤í¤¦¡£

¼¡²ó¤Ï¡¢Docker¥Ç¥¹¥¯¥È¥Ã¥×¡¢Docker¥¨¥ó¥¸¥ó¤Î¤½¤ì¤¾¤ì¤Î¥Í¥Ã¥È¥ï¡¼¥¯Àܳ¤Ë¤Ä¤¤¤Æ²òÀ⤹¤ëͽÄê¤À¡£

¡ä Windows Subsystem for Linux¥¬¥¤¥É Ï¢ºÜ¥Ð¥Ã¥¯¥Ê¥ó¥Ð¡¼

https://news.mynavi.jp/tag/winsubsystem/