728x90
[ jenkins...bye.. ]
프로젝트가 거의 끝물에 이르면서, 벡엔드 서버는 정리+마무리 단계다. jenkins를 도커 컨테이너로 만들어서 쓰면 기본포트가 8080인데, 포트번호를 바꿔줄수 있냐는 팀원 요청이 있었다. 해본적이 없어서 간단한 방법을 찾았는데 유용할 것 같아 기록으로 남긴다.
Wrong solution !! -> 먼저 시도한 방법은 ..... 커밋하고, 포트포워딩 바꿔서 다시 실행! (예상은 했지만 역시 실패... )
docker stop jenkins-container-name
docker commit jenkins-container-name jenkins-image-name
docker run -p 8081:8080 -d jenkins-image-name
그리고 다시 접속해보면.... 첨부터 다시 해야한다... (으;;) 이건 처음부터 이미지를 실행시키는 방법이지, 이미 돌아가는 컨테이너의 포워드된 포트 번호를 변경하는 방법이 아니다! 스택오버플로우에 보면 vote 수가 많던데 나도 이해가 안된다;;;;
[ This is Right solution : 아래 StackOverflow 링크의 두번째 답변!! ]
Solution. 이 방법 외에도 네트워크를 따로 만들어주는 방법도 있는 것 같다!
- Stop the container (docker stop <container_name>)
docker stop $(docker ps -a -q)
- Stop docker service (per Tacsiazuma's comment)
sudo systemctl stop docker
- Change the file -> config.v2.json 에서는 컨테이너 내부에서 외부로 공개되는 포트를 추가,수정할 수 있다. 여기서는 hostconfig.json 을 사용한다.
중간에 보이는 저 해쉬값은 컨테이너 설정파일에 대한 폴더의 이름이다. 당연히 컨테이너마다 다르다. 시작부분이 컨테이너 ID와 일치하므로 원하는 컨테이너 ID의 앞부분을 기억해뒀다가 찾아 들어가면 된다.
nano /var/lib/docker/containers/a7c53d0d298d5b7a30a481dfcaa68a51ccba996fccb2be5fb808c3763f810915/hostconfig.json > portbinding 찾아서 포트번호 변경
- Restart your docker engine (to flush/clear config caches).
sudo systemctl start docker
- Start the container (docker start <container_name>)
docker restart $(docker ps -a -q)
모두 완료하고 나면... 포트번호가 8081로 변경!!!
그리고 실패했던 jenkins url로 접속해보니... 이렇게 기존의 내용이 날라가지 않은 상태로 포트가 무사히 변경된 것을 확인할 수 있었다!!
- 성공 ! -
728x90
'[DevOps] > [Docker]' 카테고리의 다른 글
[Docker] 내가 복붙해서 쓰려고 적는 도커 설치 스크립트 (0) | 2021.10.28 |
---|---|
[Docker] Buildx: Multi-Arch images 빌드하기 (linux/amd64, arm64) (0) | 2021.10.10 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-3.Docker volume(feat. 정보산업진흥원) (0) | 2020.10.13 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-2.Docker Command(feat. 정보산업진흥원) (0) | 2020.10.13 |
[Docker] 컨테이너 인프라를 위한 DevOps 환경 구축-1.개요와 설치(feat. 정보산업진흥원) (0) | 2020.10.13 |