#はじめに
本記事は完全自分用の記事になります。予めご了承下さい
#Dockerとはなにか
コンテナ型の仮想環境を作成、実行するためのプラットフォームのこと
#ユースケース
・アプリケーション開発環境
・検証環境、本番環境
・Webサーバ、データベースサーバなどの構築
#Docker導入のメリット
・再現性の高い環境を用意できる
・プログラムの実行環境を素早く立ち上げることができる
・設定ファイル共有すればPJメンバーで同じ環境を立ち上げることができる
・PC環境を汚さずに済む(ごちゃつかない)
#ホスト型仮想化とコンテナ型仮想化
ホスト仮想型ハイパーバイザーのうえに、それぞれの複数の仮想マシンがあり、それぞれがゲストOSをもっている。そのため、イメージサイズが大きく、通常のOSと同じように起動に時間がかかる。また、ハードレベルで分離しているので分離レベルが大きい。
一方で、コンテナ型仮想化はDockerエンジンの上にこれぞれのコンテナがあり、これらはホストOSを共有する。そのため、イメージサイズが小さく軽量である。しかし、複数のOSは導入できない(ホストOSがひとつのため)。また、分離レベルは低い。
#Dockerイメージ
コンテナの雛形で、コンテナ実行に必要なファイルをまとめたファイルシステム。
イメージ上のデータはレイヤで構成され読み取り専用
コンテナを移動すると、コンテナレイヤーが追加され、このレイヤーは読み書き可能である
#コマンド一覧
以下にコマンドを一覧として記載してます。役割については、コメントアウトで記載中!
$ docker images #取得したイメージの一覧
$ docker tag docker/whalesay my_whalesay #イメージ名を変える、ただしImageIDは変わらない
$ docker tag docker/whalesay my_whalesay:ver1 #上記と同じだが、ImageIDも変わる
$ docker inspect my_whale #詳細情報の表示
$ docker rmi docker/whalesay #イメージ削除
$ docker rmi -f docker/whalesay #イメージ強制削除
$ docker pull docer/whalesay #イメージを取得
$ docker build -t docker-whale . #Dockerfileからイメージをビルドするコマンド
#docker hubにプッシュするための一連操作
$ docker login
$ docker tag docker-whale ~~~/docker-whale:ver1 # Docker ID リポジトリ名/イメージ名:タグ名
$ docker push ~~~/docker-whale:ver1
$ docker run --name コンテナ名 -d -p ホスト側ポート番号:コンテナ型ポート番号 イメージ名#例:nginxのコンテナを立ち上げる方法(バックグラウンド)
#nginxのコンテナを立ち上げるコマンド〜バインドマウントを使用するケース〜
$ docker run --name コンテナ名 -d -v ホストディレクトリ:コンテナ側のマウントポイント:
$ docker cp <ホスト上のコピーしたいファイルパス> <コンテナ名>:<コピー先>
$ docker cp <コンテナ名>:<コピーしたいファイルパス> <コピー先のパス>
$ docker ps #コンテナ一覧 -aで起動してないものも表示
$ docker exec -it <コンテナ名> /bin/bash # コンテナのシェルに接続するコマンド,exitしてもコンテナは終了しない
$ docker commit <コンテナ名> <イメージ名>:<タグ名># コンテナからイメージを作成,docker historyコマンドに記録されない
#おわりに
Dockerの勉強超絶楽しいです(笑)
引き続き続けてまいります!