[Docker] 실행중인 도커 컨테이너의 포트포워딩 변경

태태개발자 2024. 11. 25. 14:08
반응형

제목: 젠킨스 컨테이너 포트 변경 방법

내용:

우테코에서 진행 중인 팀 프로젝트에서 로그 모니터링 시스템을 도입하기 위해, 기존의 젠킨스 컨테이너 포트를 변경해야 하는 상황이 발생했습니다. 원래 EC2에서 8080 포트가 막혀 있어 80:8080으로 포트 포워딩을 설정했으나, 이후 8080 포트가 열려서 포트를 8080:8080으로 변경하려는 요구가 있었습니다.

잘못된 방법:

  1. 기존 컨테이너 commit 후 새로운 포트로 실행:
    docker stop [컨테이너명]
    docker commit [컨테이너명] [새 이미지명]
    docker run -p 8080:8080 -d [새 이미지명]
    
    이 방법은 컨테이너의 이미지를 복사하고 새로 실행하는 방식으로, 젠킨스의 모든 설정을 다시 해야 하는 번거로움이 있습니다.

올바른 방법:

  1. 실행 중인 컨테이너 중지:
  2. docker stop [컨테이너id]
  3. 도커 서비스 중지:
  4. sudo service docker stop
  5. 컨테이너의 전체 해시값 확인:
  6. sudo docker ps -a --no-trunc | grep [컨테이너id]
  7. 컨테이너 설정 파일 접근:
  8. sudo vi /var/lib/docker/containers/[컨테이너hash전체]/hostconfig.json
  9. 포트 설정 수정: 기존에 설정된 80:8080 포트를 8080:8080으로 변경:
  10. "PortBindings": { "8080/tcp": [{"HostIp": "", "HostPort": "8080"}] }
  11. 도커 서비스 시작:
  12. sudo systemctl start docker
  13. 컨테이너 재시작:
  14. docker restart [컨테이너id]

이 방법을 통해 기존의 설정을 유지하면서 포트만 변경할 수 있습니다.

반응형