コンテナの画像

Dockerとは

近年、ハードウェアの性能が向上し、ソフトウェアの技術も高まったので、物理的なコンピュータにサーバを構築するのではなく、仮想化という技術でサーバを構築することが増えた。

仮想化の最たる例がクラウドで、コンピュータ上に仮想化機能を提供するソフトウェアによりそれが実現されている。

ただ、仮想化ではコンピュータをエミュレーションするため、リソース配分の効率が悪いというデメリットがあった。

そのため、ここ数年は、それを解決する「コンテナ」という技術が人気になってきている。コンテナは、OSの上に独立した空間(コンテナ)を複数作り出し、その中でライブラリやアプリケーションを動作させる仕組みである。

仮想化とコンテナの最大の違いは、OSをひとつのプロセスとして扱うかどうか。仮想化では物理的なコンピュータと同じようにOSの起動/終了を行うため、起動に時間がかかる。

コンテナではあくまでもOSはプロセスのひとつなので、起動にかかる時間が短縮される。コンピュータのエミュレーションも行わないため、動作のパフォーマンスがよく、リソースを効率的に使用できる。

そのコンテナのソフトウェアで最も人気なのがDocker。アプリケーションやライブラリなどを「コンテナイメージ」にまとめて、それを元に素早くコンテナを起動することができる。

これらの技術をうまく使うことで、「開発環境では動いたけど本番環境で動かない」という、本番環境へのデプロイ時のトラブルを最小限に抑えることができる。

Dockerコマンド一覧

docekr search

Docker Hub上のイメージを検索

$ docker search centos

docker pull

コンテナイメージを取得

$ docker pull centos

タグでコンテナイメージのバージョンを指定して取得

$ docker pull centos:7.1

docker images

取得したコンテナイメージの一覧表示

$ docker images

docker run

Dockerコンテナを起動

$ docker run centos:7.1

-i -tオプションでターミナル起動
(-i, –interactive=false : コンテナの標準入力を開く)
(-t, –tty=false : tty(端末デバイス)を使う)

$ docker run -it centos:7.1 /bin/bash

※exit でコンテナ起動を終了、コンテナを起動したままにしたい場合は「CTRL + p + q」

docker ps

起動中のコンテナの一覧を表示

$ docker ps

すべてのコンテナを表示

$ docker ps -a

※コンテナ名は指定しないと自動的に付帯される

docker exec

起動中のコンテナに追加プロセスを実行するコマンド

docker logs

コンテナのログを表示

$ docker logs CONTAINER ID

※-f: 直近のログを表示し続ける
※–tail : ログの末尾から「何」行目を指定して表

docker stop / kill

コンテナを停止

$ docker stop CONTAINER ID

docker start

停止したコンテナを再起動

$ docker start CONTAINER ID

dockerコマンドの流れ

これまでのコマンドの概略

docker run コンテナの起動
docker ps コンテナの一覧を表示
docker exec コンテナに追加プロセスを実行させターミナルへアクセス
docker logs コンテナのlog を表示
docker stop /kill コンテナの停止
docker start 停止したコンテナの再開

docker rm

コンテナの削除

$ docker rm CONTAINER ID

備考

  • Dcokerをbrew でインストールしたあとに公式サイトからソフトをインストールするとdockerが競合してうまくいかなかった。brew uninstall dockerで削除したらOK

PROFILE

はじめまして、大阪のWeb制作会社Yuapです。「Yuap(ユアプ)」とは英語で「あなたのプランナー」という、Your Plannerの頭文字をとった社名です。 ホームページ制作|Webシステム開発|Webコンサルティングなどの業務を通じて、みなさまの事業の成長に貢献できるようなプランナーになれるよう、日々チャレンジしております。

※お問い合わせ・お見積りは無料です。 IT|ホームページ|Webシステムのことならなんでもお気軽にご相談ください。お問い合わせはこちらから。