PUROGU LADESU

ポエムがメインのブログです。

Dockerの概要と基本コマンド

概要

環境構築をするためのものです。
OSやアプリケーション、パッケージなどがセットになったイメージを共有することで、
同じ環境を簡単に作れます。作れるらしい。
コンテナはホストへの負荷が少なく、簡単に作ったり消したり出来ます。

イメージ

Dockerコンテナの動作環境となるテンプレートファイルです。
OS、アプリケーション、ファイル、コマンドなどがセットになっています。
変更するにはイメージを作り直します。

Dockerfile

イメージを作成するための手順を記述したバッチファイル
docker build で実行できます。

コンテナ

イメージから起動します。
docker run で実行できます。

コンテナを消すとコンテナ内のデータは消える

永続化するものはホスト側に保存する必要がある。
データベース、ファイルなど。
docker volumeを使います。

コマンド

docker version

docker images

取得済みイメージのリスト
docker image ls (docker imagesと同じ)

docker pull

docker hubからダウンロード
run / create時、存在しなければ自動でダウンロードされる

docker ps

起動中コンテナのリスト
docker conainer ls (docker psと同じ)
docker ps -a 起動してないのもぜんぶ表示
docker inspect xxx 詳細表示

docker build

Dockerfile からイメージを作成します。
docker build -t [image_name] .

作り直したりして不要なものは
docker images でID確認して
docker rmi xxx で削除

PowerShellは色が見にくいので --progress=plain をつける

コンテナ作成

docker run -d -it -name xxx [image_name] (イメージからコンテナ作成して起動
d: デーモンとしてデタッチして別プロセスで動かす
it: bin/bashを使うコンテナなら直接アタッチして使える
name: コンテナ名

docker run -dp 3000:3000 [image_name] (コンテナのポートをホストのポートに割り当て
docker create -d (コンテナ作成するだけ、起動はしない

ローカルに指定したイメージがない場合は、自動でDockerHubに探しに行ってpullする。

同じイメージでも実行するたびに複数出来ますので、不要なものは
docker ps -a でID確認して
docker rm xxx で削除

docker push

docker hubにアップロードして共有
タグをつける必要がある
docker tag xxx YOUR-USER-NAME/xxx

Play with Dockerを使えばアップロードしたコンテナを試せる

docker exec

コンテナ内で新たなプロセスを実行
execを使うにはコンテナが起動中であること

docker exec xxx /bin/ls -l
docker exec -it xxx /bin/bash (対話コマンド)

docker exec -it [image_name] bash
docker exec -it [image_name] ls
docker exec -it [image_name] python xxx.py

感想

PowerShellに苦戦した。