Pythonでデータ分析したり、Webアプリ開発するのに、Python仮想環境ではなく、Dockerを使おう。
Docker基本コマンドについて、まとめました。
DockerHubからPullしてPushする
Docker Hubからimageをpullして、コンテナをrunし、コンテナからimageを作成し、Docker Hubにpushする。
コマンド | 説明 |
---|---|
docker login | dockerにログイン |
docker pull <image> | docker hubからimageをとってくる |
docker run -it <image> bash | imageからコンテナをbashプログラムでrunする。runはcreate + start。bashは<command>が入り、デフォルトコマンドを上書きしている。 |
exit | コンテナから出る |
docker ps -a | コンテナの一覧を表示process status。-aで止まっているコンテナも表示 |
docker images | image一覧を表示 |
docker restart <container> | コンテナを再起動 statusをexitからupに |
docker exec -it <container> bash | コンテナをbashプログラムで実行する |
docker commit <container> <image> | コンテナからimageをつくる |
docker tag <source> <target> | imageにタグ名をつける(docker hubにアップするためdocker hubのリポジトリと同じ名前にする) |
docker push <image> | Docker Hubにpushする |
docker rmi <image> | imageを削除する |
削除コマンド
コマンド | 説明 |
---|---|
docker rm <container> | コンテナを削除 |
docker system prune | コンテナを一括削除 |
docker rmi <image> | イメージを削除 |
docker image prune | イメージを一括削除 |
runオプション
コンテナを起動する際のオプション。
オプション | 説明 |
---|---|
-it | 基本的に使う。-iはインプット可能。-tは表示が綺麗になる |
--name <container_name> <image> | コンテナ名を指定 |
--d <image> | コンテナを起動後にdetachする(バックグラウンドで動かす) |
--rm <image> | コンテナをExit後に削除する(一回きりのコンテナ) |
-v <host/path>:<container/path> | ファイルシステムの共有 |
-u $(id -u):$(id -g) | ファイルへのアクセス権限 |
-p <host_port>:<container/port> | ポートをつなげる |
--cpus <#ofCPUs> --memory <byte> | コンピュータリソースの上限。下記コマンドの<something>にcpuなど入れて現状を確認 |
docker inspect <container> | grep -i <something>
でコンテナを詳細を調べられる。
DockerfileからImageをつくる
コマンド | 説明 |
---|---|
docker build <directory> | <directory>には「.」を指定することが多い。Dockerfileが保存されているフォルダに移動し、カレントディレクトリでbuild |
docker build -t <name> <directory> | イメージ名を指定 |
docker build -f <docker file> <build context> | Dockerfileがbuil context(カレントディレクトリなど)にない場合に使う。Dockerfileを開発用、test用に複数作っている場合 |
docker buildに関するキーワード:Docker daemon、build context