Docker
- コンテナ型仮想化アプリケーション
- ホストOSのカーネルを利用して隔離された環境を作成すること
- その為軽量
- Dockerコンテナの操作はDockerエンジンを介して実行される
- Dockerコマンドにより指示を出す
- Dockerイメージに必要なものはまとまっているので、環境依存度が低い
- ホストOSの1プロセスとして動作する
- セキュリティの面において問題がある
ホスト型仮想化
- ホストOS上に仮想化ソフトウェアを動作させ、その上にゲストOSを構築する
- VMwareなど
- 重い
ハイパーバイザ型仮想化
- ホストOS上にハイパーバイザーと呼ばれる仮想化ソフトウェアを動作させ、その上にゲストOSを構築する
- 起動が遅い、重い
# Dockerイメージ
- コンテナ実行に必要なファイルをまとめたファイルシステム
- 複数のレイヤーで構成されている
- 読み取り専用
- コンテナが起動すると読み書き可能なコンテナレイヤーが起動する
コマンド
-
docker run:以下の複合
- docker pull:イメージを取得する、タグを指定しないとlatestが必ず指定されるが、実際にはlatest以外が最新版というときには、古いバージョンを落とすことがある。
- docker create:イメージを作成する
- -it:
- docker start:イメージを起動する
docker images:環境上に存在するimage一覧を表示する
docker ps:プロセスを表示する
docker pause:ポーズ状態にする
docker unpause:ポーズ状態を解除する
docker tag:タグを変更する
docker inspect:イメージの詳細を確認する
dcoker rmi:イメージの削除
docker cp:ホストマシンとdockerイメージの間でファイルをコピーする
docker login:Docker Hubへログイン
docker login quay.in:quay.inへログイン
docker push:イメージをプッシュ
docker push dockerid/イメージ名:タグ名
docker exec -it:コンテナのシェルに接続する
-
docker attach:コンテナのシェルに接続する
- Ctrl+P+Q or "exit"
-
docker build :イメージビルド
- -t XX .:名前をXXとする
- --no-cache:キャッシュを使用しない
- 再度同じdockerfileからイメージビルドした場合、コマンドに変更がある行以降のみ実行される(キャッシュが使用される) そのため
docker commit
Dockerファイル
- FROM 元になるイメージを作成する際に指定する命令
- RUN bashコマンドを実行する?
- CND
- COPY 指定したファイルをホストマシンからコンテナへorコンテナからホストマシンへコピーする
- ADD COPY+tarでアーカイブされたファイルやURLからコピーする機能
Dockerステータス
- created
- running
- exited
- removing
- paused
- restarting
- dead