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