Docker勉強備忘録1
節目を迎えたので、今週平日はUQをもらっている。
興味が出てきたのでDockerを勉強してみている。
相変わらずお世話になっているドットインストール
http://dotinstall.com/lessons/basic_docker
Dockerっちゅうのは...
Dockerってのは、アプリケーションを環境とまとめてパッケージ化する(環境をコンテナ、パッケージされたものをイメージという)ものらしい。
環境もまとめてパッケージ化するから、Dockerさえ立ち上がれば、他のマシンでも同じ動作を保証できるというもの(マシン性能等再現できないものもあるけど)
仮想環境との違いは、仮想環境はホストOS上に仮想マシンを作るが、Dockerコンテナでは、この仮想マシンがない(代わりにDockerEngine)。マシンリソースは全コンテナで共有。仮想マシンがないから軽量で手軽。
Dockerの構成
面倒なので図にした。引用元を記述すれば自由に転載していいです。

Dockerの操作
Dockerのインストール
この辺に乗っている。 今回はSandbox的に用意している仮想Ubuntu 14.04上にインストールした。
https://www.docker.com/products/docker
Ubuntuはこっち
https://docs.docker.com/engine/installation/linux/ubuntulinux/
Dockerの一連の流れ
docker search {検索ワード} | moreDockerHubのIndexからイメージを探すdocker pull {イメージ名}Docker Hub から イメージを持ってくるdocker run {イメージ名}イメージの実行- Docker
イメージの操作
docker search {検索ワード} | moreイメージの検索docker pull {イメージ名}イメージをDocker Hubからホストへ持ってくるdocker imagesホストにあるイメージ一覧を表示- イメージの指定は
{イメージ名}:{バージョン}or{イメージのIDの先頭n文字(識別できるまで)} docker inspect {イメージ指定]イメージの詳細を表示docker rmi {イメージ指定}イメージを削除
イメージの実行 / 終了 / 削除・コンテナの管理
docker run {イメージ指定}イメージの実行docker ps実行中のコンテナの一覧docker ps -a停止しているコンテナも表示
- コンテナの指定は、IDか名前で指定できる
docker logs {コンテナ指定}コンテナのログを取れるdocker kill {コンテナ指定}コンテナの終了docker start {コンテナ指定}コンテナの再開docker rm {コンテナ指定}コンテナの削除
コンテナに変更を加えてイメージを作る(例)
コンテナに直接変更を加える(docker commit)
- Ubuntuの実行などでコンテナに変更を加える
docker run -i -t ubuntu /bin/bash docker commit {コンテナID} {イメージ名(username/imagename)}でイメージを作成
DockerFileで自動化(docker build)
Dockerfileという名前のファイルを作る- https://docs.docker.com/engine/reference/builder/ を参照して作る
FROM {イメージ名}継承するファイルMAINTAINER 名前 <email>で作成者を記入RUN {コマンド}ビルドされるときに実行CMD ["コマンド", "コマンド", ... ]runするときに実行
- `docker build -t {イメージ名(username/imagename)} {Dockerfileがあるディレクトリのpath}
- イメージができる!(
docker imagesで確認しよう)
作成したイメージをDocker Hubにpush
docker logindocker push {イメージ名(username/imagename)}