10
10

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.

Docker環境構築メモ on Linux

Last updated at Posted at 2018-03-12

インストール

普通にぐぐると新旧入り乱れた情報が出てくるので、オフィシャルのドキュメントを良く読むこと。

CentOS 7

Ubuntu 18.10, 18.04, 16.04

環境設定

Proxy設定

dockerdのproxy設定は以下を参照。

※以下の設定がどこに適用されるのかわからない。
https://docs.docker.com/network/proxy/

データ領域設定

デフォルトは /var/lib/docker。
デフォルト以外を指定する場合は以下のように設定。

/etc/docker/daemon.json
{
  "data-root": "/data/docker"
}

ユーザ名前空間 (user namespaces)

  • sudoせずにdockerを利用したい場合に設定する必要がある。(ただしCentOS7ではうまく動かない模様)
  • コンテナからホスト側のリソースを操作するとき、ホストから見ると、コンテナ内のUID/GIDに/etc/subuid, /etc/subgidで設定したオフセットを足した値のユーザ/グループによって操作される形となる。
  • ただし、コンテナ内でのroot権限は特別扱いされるらしく、/etc/subuid, /etc/subgidにて割り当てられた範囲のユーザ/グループが持つリソースへの自由な操作や、この範囲での権限変更(chown, chgrpなど)が可能である。
    • 例えば、UIDの範囲を100000-165536としたとき、--volumeでマウントしたファイルシステムのディレクトリオーナーのUIDが、ホスト側から見て100000-165536であれば、このディレクトリ以下のファイル/ディレクトリに対して、コンテナ内のrootユーザはchown, chgrpも含めて自由に操作できる。
  • 利用途中でユーザ名前空間を有効化した場合、イメージは共有されないので、イメージが巨大でダウンロードに時間がかかるような場合は、あらかじめdocker saveで保存しておくこと。(data-rootをバックアップ⇒展開するだけだと、正しく動かない模様)

CentOS 7

ユーザ名前空間を有効化した上で、busyboxイメージを起動するとエラーで動作しない。
CentOS 7 の kernelが古い(2018-03-12時点で3.10.0-693.21.1.el7)のが原因?

Ubuntu 16.04

  • ユーザ「dockremap」を追加。(※ dock er map ではなく dock re map であることに注意)
  • dockerを利用する一般ユーザを、グループ「docker」に追加。(グループ設定はログイン中のユーザには反映されないので、使用前に一度ログアウトすること)
  • /etc/subuid, /etc/subgid に以下を追記。
/etc/subuid
dockremap:100000:65536
/etc/subgid
dockremap:100000:65536
  • Dockerの設定ファイルにユーザ名前空間の使用を追記。
/etc/docker/daemon.json
{
  "data-root": "/data/docker",
  "userns-remap": "default"
}

  • Dockerサービスを再起動。(sudo systemctl restart docker)
    ※reloadでは反映されないので、restartすること。

よく見る docker run オプション

  • -i: インタラクティブモード
  • -t: 疑似端末割り当て
  • --rm: プロセス終了時のコンテナ自動削除

-it で現在の疑似端末とコンテナの疑似端末を紐付けるので、コンテナ内で起動したCLIコマンドを直接操作できる。

Dockerは、イメージからコンテナを作成し、実際の動作はコンテナ上で行われる。
通常起動したときは、コンテナは勝手に消えないので、コンテナでの操作は永続化されないと言っても、コンテナを消さない限り、内部の情報は残ったままとなる。
-rm を付けると、docker run で起動したプロセスが終了したとき、コンテナも削除される。

10
10
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
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?