VirtualBox 内の GitLab Docker コンテナの完全削除手順

システム開発

VirtualBox 内で GitLab を Docker コンテナとして動作させていた場合、単にコンテナを削除するだけでは不要なリソースが残る可能性があります。以下の手順で完全に削除を行いましょう。

Docker コンテナと関連リソースの削除

(1) GitLab コンテナの確認と削除

まず、現在稼働している GitLab のコンテナを確認し、停止・削除します。

コンテナの確認

以下のコマンドで GitLab コンテナが存在するか確認します。

docker ps -a | grep gitlab

GitLab のコンテナがリストに表示された場合、次の手順で削除を行います。

コンテナの停止と削除

docker stop <コンテナIDまたは名前>
docker rm <コンテナIDまたは名前>

ポイント

  • docker stop はコンテナを安全に停止します。
  • docker rm はコンテナを削除しますが、データボリュームは残るため、次の手順で対応します。

(2) 使っていたボリュームを削除

GitLab はデータを Docker ボリュームに保存するため、ボリュームも削除しないとストレージに残ります。

ボリュームの確認

docker volume ls | grep gitlab

GitLab に関連するボリュームが見つかったら、以下のコマンドで削除します。

特定のボリュームを削除

docker volume rm <ボリューム名>

未使用のボリュームを一括削除(注意!)

docker volume prune

注意点

  • docker volume prune は未使用のすべてのボリュームを削除するため、他のコンテナで使用しているボリュームがないか注意してください。
  • 安全に削除するために、まず docker volume ls で必要なボリュームを確認しましょう。

(3) 不要なネットワークの削除

GitLab は独自のネットワークを作成して使用する場合があります。これが残っていると、新たにコンテナを起動する際に競合する可能性があります。

ネットワークの確認

docker network ls | grep gitlab

特定のネットワークを削除

docker network rm <ネットワーク名>

未使用のネットワークを一括削除

docker network prune

補足

  • docker network prune は未使用のすべてのネットワークを削除します。
  • GitLab が bridge などのカスタムネットワークを作成していた場合、それを削除することで環境がクリーンになります。

VirtualBox 内のデータを手動削除

Docker のボリュームやコンテナを削除しても、VirtualBox 内の仮想マシンに GitLab のデータが残っている可能性があります。これを手動で削除し、環境をクリーンにしましょう。

(1) GitLab のデータ削除

GitLab の設定によっては、Docker ボリュームではなくホスト(VirtualBox 内の OS)のファイルシステムにデータが保存されている場合があります。代表的な保存先を削除しましょう。

GitLab のデータが保存されているディレクトリを削除

sudo rm -rf /srv/gitlab

docker-compose で設定した場合の確認

GitLab を docker-compose.yml を使って起動していた場合、データの保存先が volumes で指定されている可能性があります。

設定ファイルを確認するには、以下のコマンドを実行してください。

cat docker-compose.yml | grep volumes -A 3

このコマンドで表示されたパスを元に、適切なディレクトリを削除しましょう。

注意点

  • /srv/gitlab の削除は 完全にデータを消去 するため、必要なバックアップがないか確認してから実行してください。

(2) Docker のデータ削除

Docker のボリュームやネットワークを削除しても、一部のデータが /var/lib/docker に残っている可能性があります。これを削除することで、よりクリーンな環境になります。

Docker のデータディレクトリを削除

sudo rm -rf /var/lib/docker

このディレクトリには、コンテナのイメージや設定データが含まれています。GitLab 以外の Docker 環境を維持したい場合は、この削除を避けてください。


3. VirtualBox のネットワーク設定を確認・削除

GitLab の Docker コンテナを VirtualBox 内で動作させていた場合、ホストオンリーアダプタNAT ネットワークなどのネットワーク設定が変更されている可能性があります。不要な設定が残っていると、他の仮想マシンや Docker のネットワークに影響を与えることがあるため、不要なネットワークを削除しましょう。

(1) ネットワーク設定の確認

まず、VirtualBox 内に存在するネットワーク設定を確認します。

ホストオンリーアダプタの一覧を確認

VBoxManage list hostonlyifs

このコマンドを実行すると、現在のホストオンリーネットワークの一覧が表示されます。GitLab のために作成されたネットワークが不要であれば、次の手順で削除できます。

NAT ネットワークの一覧を確認

VBoxManage list natnetworks

Docker が NAT ネットワークを使用していた場合、ここにリストが表示されます。GitLab に関連するネットワークが不要なら、削除を検討しましょう。

(2) 不要なネットワークを削除

ネットワークの確認後、不要なものを削除します。

不要なホストオンリーアダプタを削除

VBoxManage hostonlyif remove <ネットワーク名>

たとえば、vboxnet0 を削除する場合は以下のように実行します。

VBoxManage hostonlyif remove vboxnet0

不要な NAT ネットワークを削除

VBoxManage natnetwork remove --netname <ネットワーク名>

たとえば、natnet1 を削除する場合は以下のように実行します。

VBoxManage natnetwork remove --netname natnet1

注意点

  • 他の仮想マシンが同じネットワークを使用している場合、削除すると通信ができなくなるため慎重に確認してください。
  • VBoxManage コマンドは VirtualBox の管理ツールであり、実行には管理者権限が必要な場合があります。

4. VirtualBox 内の Docker キャッシュ削除

GitLab の Docker コンテナを削除しても、Docker のキャッシュや不要なイメージがストレージに残っている可能性があります。特に、複数回 GitLab を構築・削除した場合、古いイメージやキャッシュが溜まり、ディスク容量を圧迫することがあります。ここでは、Docker のキャッシュを削除し、ストレージを整理する方法を紹介します。

(1) Docker イメージの一覧を確認

まず、Docker に保存されているイメージを確認します。

docker images

このコマンドを実行すると、以下のようなリストが表示されます。

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
gitlab/gitlab-ce   latest    123456789abc   2 weeks ago    2.5GB
ubuntu        latest    987654321def   3 months ago   72MB

この一覧から、不要な GitLab 関連のイメージを特定します。

(2) 不要なイメージを削除

特定のイメージを削除するには、以下のコマンドを使用します。

docker rmi <イメージID>

たとえば、GitLab のイメージ ID が 123456789abc である場合、以下のように削除します。

docker rmi 123456789abc

(3) 未使用のイメージを一括削除

手動で削除するのが面倒な場合は、未使用のイメージを一括で削除できます。

docker image prune -a

注意点

  • a オプションをつけると、使用されていないすべてのイメージが削除されます。
  • 他のプロジェクトで使用しているイメージがないか確認してから実行してください。

(4) Docker のシステム全体のクリーンアップ

さらに、コンテナ、ボリューム、ネットワーク、キャッシュを含むすべての未使用リソースを削除するには、以下のコマンドを使用します。

docker system prune -a

このコマンドを実行すると、以下のものが削除されます。

✅ 使用されていないイメージ

✅ 停止済みのコンテナ

✅ 未使用のボリューム

✅ 未使用のネットワーク

実行時の注意

  • 削除前に “Are you sure you want to continue? [y/N]” と確認されるので、問題なければ y を入力してください。
  • すべての未使用データが削除されるため、他のプロジェクトに影響がないか確認してから実行してください。

5. VirtualBox 内の不要なプロセスを確認・停止

GitLab の Docker コンテナを削除した後も、不要なプロセスが動作しているとポート競合が発生する可能性があります。特に、GitLab は SSH (ポート 22)、Web UI (ポート 80443)、リポジトリ管理 (ポート 5050) などを使用するため、適切にプロセスを停止しておくことが重要です。

(1) ポート 22 の使用状況を確認

GitLab を削除したにもかかわらず ポート 22 に関するエラーが出る場合、SSH サーバーや docker-proxy プロセスが残っている可能性があります。以下のコマンドで、どのプロセスがポートを使用しているかを確認しましょう。

sudo lsof -i :22

実行結果の例:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234  root   3u   IPv4  67890      0t0  TCP *:22 (LISTEN)
docker-proxy 5678 root 4u   IPv4  54321      0t0  TCP *:22 (LISTEN)

この場合、sshddocker-proxy がポート 22 を使用しています。

(2) 残っているプロセスを終了

確認したプロセスを停止・削除します。

SSH デーモンの停止(必要に応じて)

sshd が不要なら、以下のコマンドで停止できます。

sudo systemctl stop sshd

または、完全に無効化する場合は以下を実行します。

sudo systemctl disable sshd

注意点

  • SSH を利用してリモート接続している場合、停止するとアクセスできなくなるため注意してください。

docker-proxy の強制終了

GitLab のコンテナ削除後も docker-proxy が残っている場合は、以下のコマンドでプロセスを終了します。

sudo kill -9 <プロセスID>

たとえば、docker-proxy のプロセス ID (PID) が 5678 の場合、次のように実行します。

sudo kill -9 5678

不要な Docker プロセスを一括停止

Docker のプロセスが複数残っている場合は、以下のコマンドで一括停止できます。

sudo systemctl stop docker

完全に無効化する場合は、以下を実行してください。

sudo systemctl disable docker

(3) 停止したプロセスの確認

最後に、ポート 22 にプロセスが残っていないか再度確認します。

sudo lsof -i :22

何も表示されなければ、プロセスの停止は完了です。


6. Docker の完全アンインストール(必要に応じて)

GitLab を削除した後も、Docker を使用しない場合は、Docker 自体をアンインストールして環境をクリーンにすることができます。特に、ディスク容量を確保したい場合や、Docker の再インストールを考えている場合に有効です。

(1) Docker のアンインストール

Docker を削除するには、以下のコマンドを実行します。

sudo apt-get remove --purge docker-ce docker-ce-cli containerd.io

このコマンドで、Docker の実行バイナリや関連ツールが削除されます。

注意点

  • -purge オプションを付けることで、設定ファイルも含めて削除されます。
  • 依存関係のあるパッケージも削除される場合があるため、他のアプリケーションに影響がないか確認してください。

(2) 残った Docker データの削除

Docker をアンインストールしても、一部のデータは /var/lib/docker に残るため、手動で削除します。

sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker

さらに、Docker のキャッシュや設定ファイルも削除する場合は、次のコマンドを実行してください。

sudo rm -rf ~/.docker

このコマンドは、ユーザーのホームディレクトリに保存されている Docker の設定情報を削除します。

(3) 依存関係のクリーンアップ

不要になったパッケージを削除するために、以下のコマンドを実行します。

sudo apt-get autoremove -y
sudo apt-get autoclean

これにより、Docker の削除に伴い不要になったパッケージや一時ファイルが削除され、ディスクスペースを解放できます。


7. VirtualBox VM の完全削除(環境をまっさらにする場合)

GitLab の Docker コンテナを削除し、VirtualBox 内のデータをクリーンアップした後も、仮想マシン(VM)自体が不要であれば削除することで、ディスク容量を大幅に節約できます。特に、GitLab 専用の VM を使用していた場合、VM の削除によって環境を完全にリセットできます。

(1) VirtualBox の仮想マシンを一覧表示

まず、現在の仮想マシン(VM)の一覧を確認します。

VBoxManage list vms

このコマンドを実行すると、以下のような出力が得られます。

"Ubuntu-GitLab" {a1b2c3d4-e5f6-7890-abcd-ef1234567890}
"Test-VM" {b2c3d4e5-f678-9012-abcd-ef2345678901}

削除したい VM の名前または UUID をメモしておきましょう。

(2) 仮想マシンを削除

仮想マシンを VirtualBox から削除(仮想ディスクは残す)

VBoxManage unregistervm "Ubuntu-GitLab"

このコマンドを実行すると、VM は VirtualBox から削除されますが、仮想ディスク(.vdi ファイルなど)は残ります。

仮想マシンを完全に削除(ディスクも含める)

仮想ディスクも含めて VM を完全に削除するには、--delete オプションを追加します。

VBoxManage unregistervm "Ubuntu-GitLab" --delete

このコマンドを実行すると、VM に関連するすべてのファイル(仮想ディスク、スナップショット、設定ファイルなど)が削除されます。

(3) VirtualBox の一時ファイルを削除

VM を削除しても、一部の一時ファイルが /home/<ユーザー名>/VirtualBox VMs/ に残ることがあります。以下のコマンドで不要なフォルダを削除してください。

rm -rf ~/VirtualBox\\ VMs/Ubuntu-GitLab

また、VirtualBox の設定ファイルをリセットしたい場合は、以下のフォルダも削除できます。

rm -rf ~/.config/VirtualBox
rm -rf ~/.VirtualBox

注意点

  • VirtualBox の設定ファイルを削除すると、他の仮想マシンの設定も消えるため、他の VM を利用している場合は削除しないようにしてください。

(4) VirtualBox の設定をリセット(必要な場合)

VirtualBox の環境を完全にリセットしたい場合は、VirtualBox をアンインストールし、関連するファイルを削除できます。

VirtualBox のアンインストール(Ubuntu の場合)

sudo apt-get remove --purge virtualbox
sudo apt-get autoremove -y

VirtualBox のログやキャッシュを削除

rm -rf ~/.config/VirtualBox
rm -rf ~/.VirtualBox
rm -rf /var/log/virtualbox

この手順により、VirtualBox の設定やログが完全に削除されます。


8. まとめ

VirtualBox 内で動作していた GitLab の Docker コンテナを完全に削除するための手順を紹介しました。単にコンテナを削除するだけでは不要なリソースが残る可能性があるため、各種データや設定を適切にクリーンアップすることが重要です。

削除手順のチェックリスト

1️⃣ Docker のコンテナと関連リソースを削除

  • docker ps -a | grep gitlab で GitLab コンテナを確認
  • docker stop <コンテナID>docker rm <コンテナID> で削除
  • docker volume prune で不要なボリュームを削除
  • docker network prune で未使用のネットワークを削除

2️⃣ VirtualBox 内のデータを手動削除

  • /srv/gitlab などの GitLab データディレクトリを削除
  • /var/lib/docker を削除して Docker のデータを完全クリア

3️⃣ VirtualBox のネットワーク設定を削除

  • VBoxManage list hostonlyifs で不要なネットワークを確認
  • VBoxManage natnetwork remove --netname <ネットワーク名> で削除

4️⃣ Docker のキャッシュを削除

  • docker image prune -a で未使用のイメージを削除
  • docker system prune -a でシステム全体のクリーンアップ

5️⃣ VirtualBox 内の不要なプロセスを確認・停止

  • sudo lsof -i :22 でポート 22 の競合を確認
  • sudo systemctl stop sshd で SSH を停止(必要な場合のみ)
  • sudo kill -9 <プロセスID> で不要なプロセスを終了

6️⃣ Docker を完全にアンインストール(必要に応じて)

  • sudo apt-get remove --purge docker-ce docker-ce-cli containerd.io でアンインストール
  • rm -rf /var/lib/docker ~/.docker で関連データを削除

7️⃣ VirtualBox の仮想マシンを完全削除(環境をゼロから構築したい場合)

  • VBoxManage unregistervm "Ubuntu-GitLab" --delete で VM を削除
  • rm -rf ~/VirtualBox\\ VMs/Ubuntu-GitLab で残存データを削除
  • sudo apt-get remove --purge virtualbox で VirtualBox を完全アンインストール(必要な場合)

この手順をすべて実行することで、VirtualBox 内の GitLab 環境を完全に削除し、クリーンな状態にリセットできます。

👀 もし再び GitLab を VirtualBox 上で構築する場合は、最新の Docker 版 GitLab のセットアップ手順を参照し、適切な環境を構築しましょう!

コメント

タイトルとURLをコピーしました