19
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iRidgeAdvent Calendar 2017

Day 14

chrootとDockerの使い分け

Last updated at Posted at 2017-12-13

chrootとDocker(LXC)の違いって?

chroot

メリット

  • ホストからファイルシステムが隔離される。(パッケージが分離できる。)
  • ルートを移動するだけなので、ホストからはそのまま参照できる。
  • 固めれば、容易に環境が移動できる。(環境の共有が可能)
  • 導入が簡単 or 初期で導入されてる。

デメリット

  • ユーザーランドがすべて隔離されるわけではない。(プロセスなどがホストと共有)
  • Linuxでしか使えない。(BSDはJail)

Docker

メリット

  • ユーザーランド全体が隔離できる。
  • Exportで容易に環境が移動できる。(環境の共有が可能)
  • 仮想化技術との連携でLinux以外で動かせる。 (※ WindowsはWindows Containerができたのでそのまま使える。

デメリット

  • Dockerを導入しないといけない。
  • Version/Distributionによっては導入できない。

運用案

開発環境はchrootで簡単に

  • 開発初期段階など、構成変更が激しいタイミングなどはchrootでやると楽?
  • 一時的な開発参入はchrootでお手軽に?
  • データのやり取りが激しい時はchrootで意識せずに開発?

評価環境/本番環境はDockerで厳密に

  • ユーザランドが完全に隔離されるDockerを本番では使う。
  • 評価環境は本番環境に合わせる。

chrootとDockerの切り替え

Dockerからchrootへの切り替え

  1. DockerのImageをexportする。
  2. exportしたImageを展開する。
  3. 展開先にchrootでアクセスする。
docker save > [filename.tar]
tar -xvfp [filename.tar] -C [path]
chroot [path]

chrootからDockerへの切り替え

  1. chrootのディレクトリをtarに固める。
  2. Dockerでインポートする。
tar -cvfp [filename.tar] [path]/*
cat filename.tar | docker import - [filename.tar] REPOSITORY[:TAG]
19
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?