ãã®è¨äºã¯ã¯ã¦ãªã¨ã³ã¸ãã¢ã¢ããã³ãã«ã¬ã³ãã¼2015ã®1æ¥ç®ã§ããä»åã¯ãæ¢åã®éç¨ããã¼ã«ä¹ããããDockerã¤ã¡ã¼ã¸ã¸ã®chrootã«ãããããã¤ã®èãæ¹ã¨èªä½ã®ã³ã³ã»ãããã¼ã« droot ãç´¹ä»ãã¾ãã
- èæ¯
- Docker + chroot ã®ã¢ã¤ãã¢
- droot: Dockerã¤ã¡ã¼ã¸ã«chrootããã³ã³ãããã¼ã«
- ãããã¦èªã¿ãã
- ãã¨ãã
èæ¯
Dockerããªãªã¼ã¹ããã¦ãã3å¹´è¿ãçµéãã¾ããã Webçéã«ããã¦ã確ãåæã«ã¯ããã¹ãç°å¢ããã°ããä½ãã¦ä¾¿å©ãªé«éã«åãVagrantã®ãããªãã®ã¨ããæ±ãã ã£ãã¨æãã¾ããããããããã¼ã«ã«ãCIã§ä½æããã³ã³ãããã¤ã¡ã¼ã¸åããæ¬çªç°å¢ã¾ã§ãã£ã¦ãããã¨ãããã¼ã¿ããªãã£ã®é«ããæ³¨ç®ããã¾ããã ã¨ã¯ãããå®éã«Dockerã³ã³ãããæ¬çªç°å¢ãç¹ã«ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¨ãã¦åä½ãããããã«ã¯ãããã¤ãã®èª²é¡ãããã¾ãã 2å¹´åã¯ã¾ã ãã¤ãæ¬çªã«æå ¥ããããããã®æ°æã¡ã§ããã彿ã®ããã°ã¨ã³ããªã®æ§åã§ãã
- Docker + Mesos + Marathon + Graphite + Fluentd + Sensuを組み合わせたデプロイ管理ツールの話 - ゆううきブログ
- Docker 使ってたらサーバがゴミ捨て場みたいになってた話 #immutableinfra - ゆううきブログ
ããããDockerèªä½ããªãªã¼ã¹ãéãã¦æ©è½ãå¢ãã¦ãåä½ãå®å®ãã¦ããçµæãæ¬çªç°å¢ã§ã®å©ç¨ãç¾å®çã«ãªã£ã¦ãã¦ããããããã¾ããã å®éã«ãæ¬çªç°å¢ã«å°å ¥ãããäºä¾ãããã¤ãè¦èããã¦ãã¾ãã
- Docker Meetup Tokyo #4 - Docker at Wantedly - Speaker Deck
- 'D'evelopment and 'D'eployment with 'D'ocker at 'D'wango - Speaker Deck
- Docker を利用した Web アプリケーションのデプロイ - クックパッド開発者ブログ
- Flexible Blue Green Deploymentのススメ | サイバーエージェント 公式エンジニアブログ
Docker æ¬çªå°å ¥ã®èª²é¡
夿´ãããã°ã³ã³ãããæ¨ã¦ã¦æ°ããã³ã³ãããç«ã¡ä¸ããImmutable Infrastructureè¦ç´ ã¨ã1åº¦ä½æãããã¹ãã使ãã¾ããã¦ããæ¢åã®éç¨ããã¼ã¨ãã©ãããåãããããDockerå°å ¥ã®å£ã§ãã å°ãªãã¨ãåã課é¡ã ã¨èªèãã¦ãããããã¯ãã¦ããã®ã¯ä»¥ä¸ã®ãããªãã®ã§ããï¼ä»ã«ããã£ãæ°ããã¾ããã¨ãããã仿ãåºããç¯å²ã§ï¼
- ChefãAnsibleã¨ã®å ¼ãåã
- Dockerã¤ã¡ã¼ã¸ã®ç®¡ç
- Dockerã³ã³ããã®ç£è¦
- ã³ã³ããã®ã´ãæé¤
- Server::Starteråããªããã§ã¯åé¡
- ãããã¯ã¼ã¯ã¾ããã®ããã©ã¼ãã³ã¹å£åï¼パフォーマンスの観点からみるDockerの仕組みと性能検証 - ゆううきブログ
ï¼ãdocker
- docker ã³ã³ããå ã®åé¡èª¿æ»ã®æé
- dockerã³ã³ããå ã®ãã°ã®åãæ±ã
- docker pull ãé ã
- storage driverãdevice mapperã®ã¨ãã
docker buildã¨docker runããã¾ã«å¤±æããåé¡ - dockerã³ã³ããå ã§ãã¾ã«åå解決ã失æãã
ç¹ã«ãæ¬çªã«å°å
¥ããã¨ãããã¨ã§ãã¼ããã¦ã³ã¿ã¤ã ã§ã®ãããã¤ãã©ãããããåé¡ã§ãã
ããã¿ãããåºæ¬çãªã¢ã¤ãã¢ã¯ããããã¤ãããã³ã«ãDockerã³ã³ãããç¾å¨ç¨¼åä¸ã®ã³ã³ããã¨ã¯å¥ã«ããï¼ã»ããæ§ç¯ããåæ®µã®ãã¼ããã©ã³ãµã§ãã¡ãã«åãæ¿ããï¼ã¹ã¿ãã£ãã¯ãããã¤ï¼ã¨ãããã®ã§ããããããBlue Green Deploymentçãªææ³ã§ããã
ãã®ä»ã¯ãããé«åº¦ãªã¯ã©ã¹ã¿ããã¼ã¸ã£ãã¹ã±ã¸ã¥ã¼ã©ãç¨ããææ³ãããã¾ããDockerで実現するゼロダウンタイムデプロイ
Docker å°å ¥ã®ç®ç
ï¼ã¤ï¼ã¤ã®èª²é¡ã¯æéãããããDockerèªä½ãæçããã°è§£æ±ºããããããã¾ããããããããåæã«ç¸æããã®ã¯é常ã«ãã£ããã ã¨æãã¦ãã¾ããã解決ããã¨ãã¦ãã解決ã®ããã«ä½ã£ãä»çµã¿ã®éç¨ã³ã¹ããå¢ãã¾ãã ããããDockerã使ã£ã¦ä½ãããããã£ãã®ãããã¼ã¿ããªãã£ã ã¨ãã³ã³ãããæ¯åæ¨ã¦ã¦ã¯ãªã¼ã³ãªç¶æ ãä¿ã¦ãã¨ããããããªDockerå°å ¥ã®ã¡ãªããã¯ããã¾ããããªãã¨ãªãDockerã謳ã£ã¦ããã¡ãªãããéµåã¿ã«ãã¦ãããã«æ¯ãåããã¦ããã®ã§ã¯ãªãããæ¬å½ã«ç®ã®åã®ç°å¢ã«å°å ¥ãã¦ä¾¡å¤ãã§ãã®ããã¨ãã£ããã¨ãèããããã«ãªãã¾ããã
ããã§ãã©ããªã¨ãã«Dockerãæ¬²ããã£ãããæ¯ãè¿ãã¨ãLinuxãã£ã¹ããªã®ããã±ã¼ã¸ä¾åé¢ä¿ã«è¦ããã§ããã¨ãã ã£ãããã¢ããªã±ã¼ã·ã§ã³ã¨ã³ã¸ãã¢ãã»ãããã®ãããããã¨ãããã¤ã³ãã©ã¨ã³ã¸ãã¢ã«ãé¡ãããªãã¨ãããªãã¨ãã ã£ãã¨æãã¾ãã
ã¤ã¾ããOSã®ã¦ã¼ã¶ã©ã³ãï¼/usr/binã¨ã/usr/libã¨ãããããã®OSã®ã·ã¹ãã ãã¡ã¤ã«ç¾¤ï¼ã丸ãã¨åºãã¦ã³ã³ããã¨ãã¦å®è¡ãããã¨ã§ããã¹ãå´ã®ããã±ã¼ã¸ã¨è¡çªããªããã¨ã¨ãã¢ããªã±ã¼ã·ã§ã³ã¨ã³ã¸ãã¢ãä½ã£ãã¤ã¡ã¼ã¸ããã®ã¾ã¾æ¬çªã§åããããã¨ãéè¦ã ã¨ãããã¨ããããã¾ããã
Docker + chroot ã®ã¢ã¤ãã¢
ããã¾ã§ããã¨ãDockerã§ã¤ã¡ã¼ã¸ãä½ãã¾ã§ã¯ãããã©ãæ¬çªãµã¼ãã§ç¡çãã¦Dockerã使ããªãã¦ããèªåã®ç¨éã«æ²¿ã£ããã£ã¨ã·ã³ãã«ãªã³ã³ãããããã®ã§ã¯ãªããã¨æãã¾ããã æåã¯ãrocketãsystemd-nspawnãªã©ãã¿ã¦ãã¾ããããã©ã¡ãããããªãã«éããå°è±¡ã§ããã ãã£ã¨ã·ã³ãã«ãªã³ã³ããï¼çãªï¼ãã¼ã«ã¨ãã¦ãkazuhoããã®jailingãvirtualdãªã©ãããã¾ãã ã¾ãã¤ã¾ãå®ä½ã¯chrootã§ãã chrootã¯Dockerãå©ç¨ãã¦ããLinuxã³ã³ããã¨ã¯å½ç¶å¥ç©ã§ããLinuxã³ã³ããã使ãã°æ§ã ãªOSã®ãªã½ã¼ã¹ãåé¢ãããã¨ãã§ãã¾ãããã ãå¥ã«ãã¹ãã£ã³ã°äºæ¥ããã£ã¦ããããã§ããªãã®ã§ããã¹ãã®ä»®æ³åã®ããã®ããã»ã¹åé¢ããããã¯ã¼ã¯åé¢ãèªåã®ç¨éã«ã¯ãããªãã©ãããããã£ã¦éªéã ã¨ãããã¨ãããã£ã¦ãã¾ããã
Docker + chrootã®ã¢ã¤ãã¢ã®æ ¸ã¯é常ã«åç´ã§ä»¥ä¸ã®ãããªã³ãã³ãã§è¡¨ç¾ã§ãã¾ãã
$ docker pull mysql $ export CONTAINER_ID=$(docker create mysql) $ docker export $CONTAINER_ID -o mysql.tar (mysql.tar ãMySQLãåãããããã¹ãã¸ã³ãã¼ããã) $ tar xvfz /var/containers/mysql/mysql.tar $ sudo chroot /var/containers/mysql mysqld
docker exportã«ãããã³ã³ããã®ãã¡ã¤ã«ã·ã¹ãã ã®/ãtarã§åºããç¶æ
ã®ã¤ã¡ã¼ã¸ï¼å³å¯ã«ã¯Dockerã¤ã¡ã¼ã¸ã¨ã¯å¼ã°ãªãæ°ããã¾ããã以éã§ã¯ãããDockerã¤ã¡ã¼ã¸ã¨å¼ã¶ãã¨ã«ãã¾ããï¼ãæ½åºãããªã¢ã¼ãã§å±éãã¦ãå±éå
ã®ãã£ã¬ã¯ããªã§chrootããã ãã§ãã
chroot é¨åã¯docker runã«ç¸å½ãã¾ãã
docker runã«å¯¾ããchrootã®ã¡ãªããã¯ã·ã³ãã«ãªåã ããæ¢åã®éç¨ããã¼ã«çµã¿è¾¼ã¿ãããããã¨ã§ãã
ä¾ãã°ãPerlã®ãããã¤ã«ã¯Server::Starterã®ãããªsupervisoråã®ããããããã¤ãã¼ã«ãããå©ç¨ããã¾ãããsupervisorçãªããã»ã¹ã®ä¸ã«ã¢ããªã±ã¼ã·ã§ã³ã®ããã»ã¹ãã¶ãä¸ããå½¢ã«ãªãã®ã§ãããããDockerã®ãããªdockerãã¼ã¢ã³ããã»ã¹ã«åã³ã³ãããã¶ãä¸ããå½¢ã¨ã¯ç¸æ§ãæªãã¨èãã¾ãã
chroot(1)ã¯èªåã®ãã¡ã¤ã«ãã¹ã®æ¢ç´¢ãã¤ã³ãã夿´ãã¦ã弿°ã®ã³ãã³ããexecããã ããªã®ã§ããã»ã¹ããªã¼ãå´©ãã¾ããã
åã«start_serverã¸ã®å¼æ°ã«chrootã³ãã³ããæå®ããã°ããã ãã§ãã
daemontools/supervisorã®å©ç¨ãä»ã¾ã§ã¨åæ§ã®ã¯ãã§ããããã°ã¯åã«chrootå
ã®ãã£ã¬ã¯ããªãè¦ã«ããã°ãããããªã«ãããããã¤æã«ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã®å段ã®ãã¼ããã©ã³ãµã§æ°ã³ã³ããç¾¤ã«æ¯ãåãå
ãåãæ¿ããã¨ãã£ãæ°ããä»çµã¿ã®å°å
¥ãããã¾ããã
ãã¨ã¯docker exportã§ã¨ãã ããã¤ã¡ã¼ã¸ãã©ã®ããã«ãã¦ç®¡çããæ¬çªã«é
å¸ãããã§ãã
Dockerã¨ã¯ç´æ¥é¢ä¿ãªãã§ãããæ¬¡ä¸ä»£ãããã¤ææ³ã¨ãã¦ãMamiya ã Stretcher ã«ä»£è¡¨ããããããªã¢ããªã±ã¼ã·ã§ã³ææç©ãã¤ã¡ã¼ã¸åãããã®ã¤ã¡ã¼ã¸ãpullåã§ãããã¤ããã¨ããææ³ãæ¨å¹´ãããããæ³¨ç®ããã¦ãã¾ããï¼ããã§ããã¤ã¡ã¼ã¸ã¯Dockerã¤ã¡ã¼ã¸ã®ãã¨ã§ã¯ãªããPerlãªãã½ã¼ã¹ã³ã¼ã+ä¾åããCPANã¢ã¸ã¥ã¼ã«+éçãã¡ã¤ã«ãªã©ãtar.gzã«åºãããã®ãæãã¾ãï¼
ãããã®ããã¼ã®ãã¡ãã¢ããªã±ã¼ã·ã§ã³ææç©ãã¤ã¡ã¼ã¸åããé¨åãDockerã¤ã¡ã¼ã¸ã«ç½®ãæããã®ãããã¨èãã¾ããã
ã¤ã¾ãä¸è¨ã®mysql.tarï¼å®éã«ã¯gzipåãã¾ãï¼ãCIãªã©ã§S3ã®ãããªã¹ãã¬ã¼ã¸ã«ã¢ãããã¦ãæ¬çªãµã¼ãä¸ã«ConsulãCapistranoã§é
ç½®ããã¢ããªã±ã¼ã·ã§ã³ã®èµ·åã¯chrootã§è¡ãã¨ãããããªæµãã§ãã
ã¨ã¯ãããchrootããã ãã¨ã¯ãã£ã¦ããchrootããã¨ãã¯ãã¹ãå´ã®/sysã/devã/etc/hostsã/etc/resolv.confãªã©ã®ã·ã¹ãã ãã¡ã¤ã«ãchrootç°å¢ããè¦ããããã«ããããã¨ãå¤ãã§ãããchrootã®å®è¡ã«ã¯root権éãå¿
è¦ãªã®ã§ãrootã®ã¾ã¾å®è¡ããã«Linuxã®capabilitiesã調æ´ããã¨ãã£ãä¸ãããããå¿
è¦ã§ãã
ããã«ãã¡ãã£ã¨ããã¤ã¡ã¼ã¸ããããã¤ããã®ã«èªåã®æã§S3ã«ã¢ãããã¼ããããS3ãããã¦ã³ãã¼ãããã®ãã¡ãã£ã¨é¢åã ãªã¨æãã¾ãã
droot: Dockerã¤ã¡ã¼ã¸ã«chrootããã³ã³ãããã¼ã«
ããã§ãDockerã¤ã¡ã¼ã¸ã¨chrootã«ããä¸é£ã®ãããã¤ããã¼ããµãã¼ãããããã®ãã¼ã« drootãä½ãã¾ããã
drootã®å使¦è¦ã次ã®å³ã«ç¤ºãã¦ãã¾ãã
drootã¯ã³ãã³ãã©ã¤ã³ãã¼ã«ã§ãããpushãpullãrun ã®3ã¤ã®ãµãã³ãã³ããåºæ¬ã¨ãªãã¾ãã
ããããã®ãµãã³ãã³ãã®æ©è½ã¯ãã¡ããã©dockerã³ãã³ãã®ããã¨è¿ãã¤ã¡ã¼ã¸ããã£ã¦ãããã¨ããããããã¾ããã
以ä¸ã§ã¯droot ã®ä½¿ãæ¹ã¨å®è£ ãç´¹ä»ãã¾ãã
droot ã®ä½¿ãæ¹
droot push: Dockerã¤ã¡ã¼ã¸ãtar ballåãS3ã«pushãã
$ docker pul yuuk1:perl:5.20.1 $ droot push --to s3://droot-examples/perl.tar.gz perl:5.20.1
perlã®ã³ã³ãããDockerHubãããã£ã¦ãã¦pushãã¦ãã¾ãã
docker buildã§ãã«ãããèªåã®Dockerã¤ã¡ã¼ã¸ã§ããã¡ããåä½ãã¾ãã
droot pull: S3ã«pushããã¤ã¡ã¼ã¸ããã¦ã³ãã¼ããå±éãã
Perlãåãããããµã¼ãä¸ã§ä¸è¨ã®ã³ãã³ããå®è¡ãã¾ãã
$ droot pull --dest /var/containers/perl --src s3://droot-examples/perl.tar.gz
droot run: å±éå
ã®ãã£ã¬ã¯ããªã«chrootãã
$ droot run --root /var/containers/perl perl -v
ãããä¸é£ã®ã³ãã³ãããã¹ã¦ä½¿ãå¿
è¦ã¯ããã¾ããã
ä»ã®ãããã¤ãã¼ã«ãä¾ãã°stretcherã¨çµã¿åãããã¨ãã¯ãdroot pushã§S3ã«ã¤ã¡ã¼ã¸ãpushããã¤ã¡ã¼ã¸ã®é
å¸ã¯stretcherã«ã¾ããã¦ã¢ããªã±ã¼ã·ã§ã³å®è¡æã«droot runãå©ãã¾ãã
S3ã使ã£ã¦ãã¾ãããä»ã®ã¨ããã¤ã¡ã¼ã¸ãã¡ã¤ã«ã1ã¤1ã¤ç´ æ´ã«ç®¡çãã¦ããã ãã§ãã ããå°ããã¼ã¸ã§ãã³ã°ã®ãããªã¤ã¡ã¼ã¸ãæ½è±¡ç®¡çã§ãããããªä»çµã¿ãæããã¦ãããããããã¾ããã
ãã®ä»ã詳ããã¯READMEãåç §ãã¦ãã ããã ã¾ã ç°å¢ã«ãã£ã¦ã¯åä½ããªããªãã·ã§ã³ãªã©ãããããããã¾ããããé æ¬¡å¯¾å¿ãã¦ããã¾ãã(Dockerã¤ã¡ã¼ã¸ã®ãã£ã¹ããªãDebian 8ã®å ´åãsetuid/setgidå¨ãã®åé¡ã§ --user/--group ãªãã·ã§ã³ãåããªãåé¡ãªã©)
droot ã®å®è£
drootã¯åãµã¼ãã«é ãå¿ è¦ããããããã¯ã³ãã¤ããªãçæã§ããGoè¨èªã§å®è£ ãã¾ããã
droot push/pull ã®å®è£
droot push/pullã«ã¤ãã¦ã§ãããããã»ã©ç¹å¥ãªãã¨ã¯ãã¦ãã¾ãããdocker exportãS3ã¸ã®ã¢ãããã¼ããgzipåãªã©ãUNIXãã¤ããç¨ãã¦ã¹ããªã¼ã ã¨ãã¦æ±ãå¹çåãããã¨ã¨ãAWS SDKã®Goå®è£
ãã¤ãã«General Releaseããã ã®ã§ããã使ã£ããããã§ãã
droot run ã®å®è£
jailingãåèãããçä¼¼ããããã¦ãã¾ãã jailingã®READMEã«ããã¾ãããjailingããã£ã¦ããã®ã¯åºæ¬çã«ä»¥ä¸ã®ãããªãã®ã ã¨èªèãã¦ãã¾ãã
/binã/libã/sbinãªã©ã®ã·ã¹ãã ãã£ã¬ã¯ããªãjailç°å¢ããåç §ã§ããããã«ããããã®ãã£ã¬ã¯ããªãchrootãã£ã¬ã¯ããªä»¥ä¸ã«bind mountãã- chroot ãã£ã¬ã¯ããªä»¥ä¸ã«mknodã§
/dev/zeroã/dev/randomãªã©ã使 /etc/hosts,/etc/resolv.confãªã©ã chroot ãã£ã¬ã¯ããªä»¥ä¸ã«ã³ãã¼- root権éã§chroot(2) ããã®ã¡ãroot権éã®ä¸é¨ã ãæ®ãã¦ã権éãè½ã¨ãããã®ã¯ãã¹ã¦è½ã¨ãã(capabilities
droot runã®å®è£
ã¯ããã«è¿ããã®ã«ãªã£ã¦ãã¾ãããéãã¯å®è£
ã®éãã¨ããããã¯ç®çã®éãã«ããã¾ãã
chrootå
ã®ãã£ã¬ã¯ããªã¯Linuxãã£ã¹ããªãåä½ããããã«å¿
è¦ãªãã¡ã¤ã«/ãã£ã¬ã¯ããªç¾¤ãé
ç½®ããã¦ããå¿
è¦ãããã¾ãããããã®ãã¡ã¤ã«ç¾¤ããã¹ãå´ã®ãã®ãåå©ç¨ãããã¨ã§ãjailingã¯å³åº§ã«jailç°å¢ã使ã§ãã¾ãã
䏿¹ã§ãdroot runã¯ãããã®ãã¡ã¤ã«/ãã£ã¬ã¯ããªä¸å¼ã¯ã¤ã¡ã¼ã¸å
ã«å«ã¾ãã¦é
å¸ããã¦ããåæãªã®ã§ã/binã/libã¯ãã¹ãå´ã®ãã®ãåç
§ããå¿
è¦ã¯ããã¾ããã
ãã ãã/etc/resolv.confã®ãããªæ¬çªãµã¼ãã¨ãã以å¤ã§ç°ãªãè¨å®ã«ããããã¡ã¤ã«ãããã®ã§ãæ¬çªãµã¼ãã§ã¯ãã¹ãå´ã®/eyc/resolve.confãåç
§ãããã¨ãããã¨ãããã¾ãããã®ãããªãã¡ã¤ã«ã¯ãªãã·ã§ã³ã§ã³ãã¼ããããbind mountã§ããããã«ãã¦ãã¾ãã
ãããã¦èªã¿ãã
- Docker と SO_REUSEPORT を組み合わせてみる。おそらくその1 - blog.nomadscafe.jp
- æããããããã¨æã£ãDockeræ¬çªå°å ¥ã®å·¥å¤«ã§ãã
- GitHub - tcnksm/awesome-container: A curated list of awesome container technologies and services
- ã³ã³ããæè¡ä¸è¦§
- Namespaces in operation, part 1: namespaces overview [LWN.net]
- いまさら聞けない Linux コンテナの基礎 / KOF 2015 - Speaker Deck
- GitHub - opencontainers/runc: CLI tool for spawning and running containers according to the OCI specification
- Kazuho's Weblog: jailing - chroot jailを構築・運用するためのスクリプトを書いた
- chroot å¨ãã®æè¡ã¯jailingã§ãã¹ã¦å¦ã³ã¾ãã
- Virtual Services Howto: Virtuald
- chrootã使ã£ãã·ã³ãã«ãªã³ã³ãã
- Home | My CMS
- drootã«è¿ããªã«ã
- Docker Without Docker
ãã¨ãã
Dockerã®ã³ã³ã»ãããBuild, Ship, Runãã«ç«ã¡è¿ããdependency hellã解決ããããã«ãCIãstagingç°å¢ã§åä½ããç°å¢ãã¤ã¡ã¼ã¸åãããã®ã¾ã¾æ¬çªç°å¢ã«ãã£ã¦ãããªã¼ãºããã«ãªããæ¹ãæ¢ãã¦ãã¾ããã çµæã¨ãã¦ããBuildãã®ã¿Dockerã使ç¨ããShipãRunã¯å¥ã®ã·ã³ãã«ãªãã¼ã«ã«ä»»ããã¨ããæ¹æ³ãèªä½ãã¼ã«ã¨ã¨ãã«ææ¡ãã¾ããã
è¿ããã¡ã«æ¬çªç°å¢ã§ã®ãããã¤ã®å ·ä½çãªæ§åãç´¹ä»ãããã¨æãã¾ãã
"Dockerã¯ããå¤ã ããããã¯chroot"ã¨ãã話ããã¾ãã
— ãããã (@y_uuk1) 2015, 6æ 27
ã¯ã¦ãªã®2017年度 æ°åæ¡ç¨ãµã¤ãããªã¼ãã³ãã¾ããã developer.hatenastaff.com
kazuho ããããæé«ã®ã³ã¡ã³ãï¼ããã ãã¾ãããSIGHUP奿©ã§ãã£ã¬ã¯ããªã«ã¤ã¡ã¼ã¸å±éãããã®ããªãã»ã©ã
ï¼å¹´ãããã¾ãã«åå¼·ä¼ã§è©±ãããã¨ã ãã©ãserver-starter ã SIGHUP åãåã㨠pull åã®ãããã¤ãã¼ã«ãèµ·åãã¦ãããã¤ãæ°ãããã£ã¬ã¯ããªã«ã¤ã¡ã¼ã¸ãå±éãã¦ãããã« chroot ãã¦ã¢ããªã±ã¼ã·ã§ã³ãåãåºãã¹ã¿ã¤ã«ããªã¹ã¹ã¡ã§ã
— Kazuho Oku (@kazuho) 2015å¹´12æ1æ¥
ã¾ãå ·ä½çãªæ§æã¯ä»ã®å½¢ã§ããããã©ãchroot ã®ãä¸ãã« server-starter ãç½®ããã¨ã§ãããããã¤æã®ãã¡ã¤ã«ã®ç½®ãæãã atomic ã«ããããã¨ã¨ãgraceful restartãã両ç«ãããã¨ãã§ããã®ã§ã
— Kazuho Oku (@kazuho) 2015å¹´12æ1æ¥
