最近、docker環境内でSLAMの環境を構築したので、そのときに使用したdockerコマンドをメモしておく。
dockerコマンド
Dockerfileからdockerイメージを作成
docker build -t [保存したいイメージ名]:[保存したいタグ名] [Dockerfileがあるディレクトリパス]
dockerイメージをもとに、dokerコンテナを起動する。
- オプションrmをつけてコンテナ終了時にそのコンテナを自動的に削除する。
- オプションitをつけて、ターミナル入力を可能にする
- vオプションと、$(pwd):/homeをつけて、docker環境内の/homeディレクトリ内から、ホスト側(dockerを起動している端末側)の現在いるディレクトリに接続して、ファイルを共有する事が出来る。これをホスト側のファイルをコンテナ側にマウントするという。利用例としては、エッジ開発時など容量の少ない端末上で開発環境を整えたいときなどに、ソースコードをホスト側に置き、docker内にビルドする(docker内に実行ファイルを作る)などの事が出来る。マウントは複数ヶ所にできる。
- nameオプションでコンテナをイメージとタグに名前をつけることが出来る。
docker run --rm -it -v $(pwd):/home --name [コンテナ名] [イメージ名]:[タグ名]
実行中のコンテナを一覧表示
docker ps
過去に実行したコンテナすべてを表示
docker ps -a
保存されているdockerイメージの一覧表示
docker images
実行中のコンテナから一時的に抜ける(コンテナは起動したまま)。
Ctrl + p -> Ctrl + q
上のコマンドで抜けたコンテナ環境に再度入る
docker attach [コンテナID or コンテナ名]
コンテナを停止する
docker stop [コンテナ名]
コンテナを削除する
docker rm [コンテナID]
dockerコンテナの保存
- タグ名にはlatestなどの名前をよく用いている
docker commit [起動時に名付けたコンテナ名] [保存したいイメージ名]:[タグ名]
保存されたか確認
docker images
ファイルをホストからコンテナへコピーする
docker cp file-path [コンテナID]:path
dockerイメージをtarファイルに出力(testimage.tarファイルに保存してみる)
- 他の端末に作り上げたdocker環境を移すときなどに使用する
- docker環境のバックアップにも使える
docker save -o [dockerイメージ名] ~> testimage.tar
tarファイルをdockerイメージに戻す(解凍)
docker load <- testimage.tar
dockerプロセスを切る
exit
再度、exitで切ったプロセスを開始
docker ps -a -> docker restart [container ID]