9
7

More than 3 years have passed since last update.

Docker でビルドをリセットしたい。

Last updated at Posted at 2019-12-16

Docker上でビルドしたコンテナを削除したいときに使えるコマンド(3連チャン)

一度ビルドしたら、再度実行してもsuccessとかすぐ出て編集した内容が反映されているかわからないので、リセットできそうな方法を記載します。

stop(まずはコンテナを停止)
$ docker stop $(docker ps -q) 
remove(コンテナ削除)
$ docker rm $(docker ps -aq) 
remove_image(イメージ削除)
$ docker rmi $(docker images -q)

この順番で実行すれば、何度でもビルドしなおすことができます。

しかし、3行のコマンドを分けて打つのも面倒なので、横着な方法で連結して実行しています。
一応、データは消えてくれますが、この方法がいいかどうかは分からず実行しています;

1行コマンドにまとめる
$ docker stop $(docker ps -q) | docker rm $(docker ps -aq) | docker rmi $(docker images -q)

Docker学びはじめて、いろいろやってみてはいますが良くわかりません。

最終的なDockerfileの理想像としては、
ターミナルで手入力で実行するコマンドは極力無くして
"docker-compose build", "docker-compose up -d"くらいで
開発環境をコピーできるようにしたいと思っています。

そのためにDockerfileをしっかり書けるようになりたいんですが、
ネットで見つかる記事のほとんどが、
途中途中でターミナル使う方法を記事にまとめてくれているため、
自分のしたいことと少し違って、モヤモヤしています。

「コマンドを途中で何回も手入力したら、Dockerの威力発揮しきれてないやん(;;)」

「DockerはDockerfileを読み込むだけで、自動的に同じ開発環境を構築できるんじゃないのかー!?
なぜ、途中でターミナルへコマンドを入力するんだー!」と心の中で叫んでいます。

今は、DockerでLaravelを起動する
ここを参考にトライしていますが、
過去のビルドのデータが残っていると邪魔くさい感じで
コンテナ削除のページへ行きついたのでメモ代わりに記事にしました。

Dockerfileが正しく書けているのか、どうなのか分からず
命令がただしく記述できているかを確認したいので、
ビルドで生成されたファイルやフォルダを
全てビルド前の状態に戻せたらわかりやすいのになぁと思っています。

そういう方法を知っている方がいらっしゃったらぜひ教えてください。
その方法がないなら、gitで毎回リセットするしかないのかなー?なんて考えています。

みなさん、どうやってDockerfileが正しく書けているのか確認しているんだろう?と思います。
それに関しても参考になるサイトとかありましたら、ぜひともシェアしていただけると助かります!!

参考ページ
Dockerの不要なコンテナ・イメージを一括削除する方法

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7