Docker
[Docker] port is already in use 에러
@developer.kye
2021. 12. 23. 15:46
docker start 컨테이너명 을 실행했는데
port 8080 is already in use 와 같은 에러가 나면
대부분의 경우 다른 프로세스에서 이 8080을 이미 쓰고 있는 경우이다.
netstat -lntp | grep 8080
해서 보이는 프로세스가 쓸모없는 경우 쉽게 kill -9 [pid] 로 해결하면 된다..
하지만 오늘의 경우 특이한 케이스였는데, (ㅠㅠ)
기존에 돌던 동일한 컨테이너가 제대로 종료되지 못해서, 포트를 잡고있는 경우였다..
발생 원인은 정확하게 파악할 수 없었으나, docker-proxy 설정에서 이미 선점된 상태의 /run/containerd/containerd.sock 을 재사용 하게 됨으로써 발생되는 현상으로 파악되었다.
더 공부해봐야겠지만, 다음처럼 진행하여 현상을 해결하였다.
1. sudo systemctl status docker 로 포트를 선점하고 있는 프로세스 pid들을 확인한후 강제로 kill
2. sudo systemctl stop docker
3. socket 파일 이동 (기존 것 사용못하도록)
$ cd ~
$ mkdir socket_backup
$ sudo mv /run/containerd/containerd.sock* ~/socket_backup/.
4. sudo systemctl start docker