Linux

Linuxでlsofコマンドでポート番号が何に使われているか確認する

Dockerを使っていると、よくコンテナを作ろうとした際にポート番号がすでに使われていることがあります。

Docker同士でぶつかっている場合にはDocker psコマンドで確認できますが、 Docker以外のサービスで利用している場合の確認方法についてメモです。

想定するパターン

Dockerでコンテナを作成すると「address already in use」と表示されるけど他のコンテナでは使ってないような時があります。

#docker-compose up -d 
・
(略)
・
ERROR for netbox-docker_nginx_1 Cannot start service nginx : driver failed programming
(略)
 : listen tcp 0.0.0.0:8081 : bind : address already in use

確認方法

lsofコマンドを使うことで何で使われてるか分かります。今回は例として8081ポートが何で使われているか調べてみます。

# lsof -i:8081
COMMAND   PID  USER FD TYPE DEVICE SIZE/OFF NODE NAME
macmnsrv  19222  mfe 19u IPv6 823839  0t0 TCP *:tproxy(LISTEN)

macmnsrvが使っているサービスです。調べてみるとMcAfeeのウイルススキャンソフトで利用されているということが分かりました。

今回は以上となります。

コメント

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