7
7

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の概念と使い方

Last updated at Posted at 2018-06-24

概要

Linuxカーネルが持つLXC (Linux Container)という機能(以下コンテナ機能)を使って、あたかも他のプロセスやコンテナから独立したPC上でアプリケーションが動いているかのようにする技術。

仮想環境と比較したメリット

  • プロセスを管理するようなコストで管理できる
  • 余計なオーバーヘッドがない1
  • リソースも関係あるものに絞ることができる

コンテナ機能:LXC (Linux Container)

名前空間の隔離機能
リソースの隔離機能

詳しくは俺はLinuxコンテナについてなんにも解っていなかった~haconiwaで学ぶLinuxコンテナ(1)~から色々調べるとちゃんと理解できるかも。

Dockerの中身

DockerはDocker APIを使って外部からコンテナ機能を実行できるようにする。この状態のシステムをまとめてDockerホストと呼ぶ。DockerホストはDockerイメージをもとにアプリケーションを操作する。

Dockerイメージ

アプリケーションとその実行環境、展開・操作方法等をまとめて1つのパッケージとして保存、配布される。そのパッケージのこと。
公式のリポジトリ2で配布されているものもあれば、自作することもできる。

また、履歴管理を備えている。基本的にイメージ内のファイルシステムは全て書き込み禁止となっており、書き込まれた内容は差分として保存される。このレイヤー内容を「コミット」することで新しいイメージとして保存できる。

Dockerfile(スクリプト機能)

Dockerイメージに含まれる。イメージに対してどのように展開/操作するかといった指示を記述できる。それによって、既存のイメージに対して追加でインストール等を行った結果を新たな環境として保存することができる。

Dockerの使い方

基本的にこれだけでOKらしい

koredake.sh
$ docker run imageName

これによって、もしローカルにimageName(Dockerイメージ)がなければ自動的にダウンロードされ、実行される。

その他基本的な操作に必要なコマンド

役割 コマンド
イメージの入手 docker search
docker pull
イメージの確認 docker images
イメージの起動 docker run
コンテナの状態確認 docker ps
外部と通信させる docker port
新しいイメージとして保存 docker commit
ディスクイメージ3の削除 docker rm
イメージそのものの削除 docker rmi

他にもいろいろコマンドはあるので、あとは必要に応じて…。

Dockerfileの書き方

上記したようにスクリプトを使って環境構築作業を常に同じ手順で再現できる。DockerfileをbuildすることでDockerイメージを作成する。

FROMやCMD等INSTRUCTIONについては記事がごちゃごちゃするので別記事で。
Dockerfileの書き方

その他関係するもの

Docker Swarm
複数のコンテナを実行するホストを1つのクラスタとして管理する機能。規模が大きい実行環境で使われる。
Docker for Windows
Windows OS上でもDocker環境を構築できるツール。
Get started with Docker for Windows

まとめ

思っていたよりも簡単そうなのでとりあえず実際に触ってみようと思います。実際に使ってみて何か追記するかもしれません。

  1. 最終的なアプリケーションはOS上の1プロセスとして実行されるため

  2. https://hub.docker.com/ の中の、"OFFICIAL"に[OK]がついているものが公式イメージ

  3. 通常、一度実行したコンテナは終了後もイメージとして残るので、消したい場合は明示的に削除する必要がある。残ることで、次回素早く起動することができる。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?