Help us understand the problem. What is going on with this article?

Dockerの使い方・概念の備忘録 (作成途中)

More than 1 year has passed since last update.

1 前書き

qiita初めての投稿です
dockerを一から勉強する際の備忘録及びマークダウンの書き方の練習を兼ねて残していきます。

2 コンテナ技術

ホストOS上に論理的なコンテナを作り必要なライブラリやアプリケーションをまとめて一つの塊として扱う技術

2.1ホスト型サーバー仮想化

virtualboxVMwareはメモリやCPUリソースの無駄が大きい(dockerのubuntu等はGUIが付随しない最小限のパッケージ)
ホストOSの上にゲストOSが乗っかる

2.2ハイパーバイザー型サーバー仮想化

MicrosoftのハイパーV等
ハードウェアを直接制御するのでホスト型よりリソースの効率が良い
プレゼンテーション1.jpg

3 コンテナの構成要素から分かるDockerのメリット

1.インフラの環境設定
2.ライブラリ
3.実行するプログラム本体
4.ミドルウェア
特にdockerのメリットが出るのはインフラの環境設定の部分と持ち運びの容易さ。
ハードウェア・OS・ミドルウェア等が異なるとプログラムは同じようには動かない。dockerとdocker imageさえあれば再現可能(但しホストとコンテナの環境変数を合わせる必要がある場合等はimageからコンテナを作った後も環境構築の必要性があるために絶対じゃない)
dockerとdocker imageだけで実行可能なので持ち運びに便利

3.1 学習に使える

Dockerコンテナが簡単に作れるということは簡単に壊せることも意味する
virtual boxでは初心者は設定ファイルをいじったりするのには勇気がいる(わからなくなったら最悪再インストール)
試行錯誤が簡単にできるのでlinuxコマンド等に触れるのに便利

4 Docker3大機能

1.Build
2.共有
3.RUN

4.1 Build

インフラの構成情報や実行ファイルを記述したDockerfile(後述)からdocker imageを構築します。 例えばCentOSイメージ Apacheイメージ 実行ファイル(アプリ)イメージ をひとまとめにしたファイル。
Dockerfileはlinux上での動きを1つずつ順番に記述していくような形になるために作成にはlinuxコマンドの知識が必要です。(もう少し詳しく後述予定)

4.2 共有

作成したDocker imageはDocker hubで共有・配布することができます。
git hubと連携することでgithubでDockerfileを管理してDockerhubで自動的にイメージ作成なども可能です。(後述予定)

4.3 RUN

作成したコンテナの実行です。ターミナル/コマンドプロンプトから簡単に実行・停止が可能です。
コンテナの実行はLinuxカーネルを用いて行われる別々のコンテナでもカーネル自体は一つのものを共有
複数のマシンから分散環境での実行も可能(これは試したことがないです)

5 Dockerの通信構成とポート

6 コンテナのライフサイクル

7 Dockerでよく使うコマンド集 (追加中)

以下のコマンドだけでなくイメージやコンテナの識別子が必要です

コマンド 内容 よく使うオプション 備考
container run コンテナの実行 bin/bash コンテナの作成から実行まで行ってくれる bin/bashでコンテナのシェルを動かして操作できる
-d サーバーとしてバックグラウンで実行させるのに使う
container ls 稼働中のコンテナの確認 -a -aで停止中含めて全てのコンテナを表示
container exec 稼働しているコンテナで新しいプロセスの実行 -d -dコマンドでバックグラウンドで実行する
container commit コンテナからのイメージ作成 -a -aで作成者の名前(Author)がつけられる
container diff コンテナでの操作の変更点を確認 コンテナ内では何をしたか自分でわからなくなることが多い
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away