[Linux] Docker에 고정 IP 설정하기

[Linux] Docker에 고정 IP 설정하기
Photo by Mohammad Rahmani / Unsplash

A. 사용환경

  • OS : Rocky Linux 9.5 (Blue Onyx)
  • Docker : 28.0.4
  • Portainer : 2.27.3 LTS

B. 왜 고정 IP로...?

현재 구축 중인 Docker서버는 단일 호스트에 여러 개의 오픈소스 소프트웨어들을 운영하는 것이 1단계 목표이다.(나중엔 쿠버네티스 같은 환경으로...)

각 소프트웨어들에 접속할 때 http://hostip:port와 같은 형태로 사용해도 되지만... 테스트도 아니고 어쨌든 운영용도로 사용할 계획이니 http(s):domain/과 같이 깔끔한 형태로 접속하게 하고 싶었다.

그렇게 구성하기 위해서 Nginx Proxy Manager를 이용해보려고 한다.(도메인 처리 및 ACL 등 여러 목적으로..?)

문제는 예전 경험인데... 고정 IP로 셋팅을 안해두면 docker 업데이트되면서 IP가 변경되는 이슈가 있다.

그래서 Bridge 네트워크를 하나 만들고 그 Bridge 네트워크에 각 컨테이너들을 실행시킬 때 IP를 직접 부여한느 방식으로 진행하려고 한다.

C. Bridge 네트워크 추가

지난 번에 Portainer를 설치했으니 Portainer를 이용해보자.

직접캡쳐
  • Name : DevteamNet (이름은 원하는 걸로...)
  • Driver : bridge (기본값이니 변경X)
  • Subnet : 172.20.0.0/24 (이렇게 설정하면 172.20.0.1 ~ 172.20.0.255까지 사용이 가능하다)
  • 나머지는 변경하지 않고 Create the network 클릭

생성한 네트워크를 명령어로 확인해보면...

$ sudo docker network ls
NETWORK ID     NAME         DRIVER    SCOPE
eecf5333f9db   DevteamNet   bridge    local
c0f6e27667b7   bridge       bridge    local
6d2dc151721a   host         host      local
98e9babf892d   none         null      local
$

생성한 DevteamNet이라는 네트워크가 생긴 것을 확인할 수 있다.

D. 컨테이너 재실행

아마 네트워크를 지정하지 않았다면, Docker 설치 시에 생성된 bridge 네트워크에서 동작 중이었을 것이다.

기본으로 생성되는 bridge 네트워크는 DHCP를 사용하므로 해당 네트워크가 아닌 위에서 추가한 네트워크에 올리려고 한다.

작업할 대상은... 기존에 설치했던 Portainer 컨테이너부터!

$ sudo docker stop portainer
$ sudo docker rm portainer
$ sudo docker run -d -p 9000:9000 --name=portainer --network DevteamNet --ip 172.20.0.10 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.27.3

처음에 설치할 때와 거의 유사하지만...

  • --network DevteamNet : 네트워크명 지정
  • --ip 172.20.0.10 : IP 지정

위의 두 옵션을 추가해서 docker run을 이용해서 컨테이너를 배포하면 아주 쉽게 이관완료!

E. 확인

docker inspect 명령어를 이용해서 확인해도 되지만... Portainer를 사용하니까

Networks에서 DevteamNet을 선택해서 확인해보면 해당 네트워크에서 실행 중인 컨테이너의 목록을 확인할 수 있다. IP주소가 뭐인지도.

F. 마치면서

Portainer를 이용하면 다른 컨테이너를 GUI를 이용해서 쉽게 배포할 수 있다. 문제는 Portainer 자체는 스스로를 컨트롤 할 수 없으니까...

$ sudo docker run -d -p 9000:9000 --name=portainer --network DevteamNet --ip 172.20.0.10 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.27.3

이런 Portainer 배포를 위한 명령어 정도는 잘 메모해두자.. (나중에 헷갈려요...)

Read more

[Linux] Docker에 Portainer 설치

[Linux] Docker에 Portainer 설치

A. 사용환경 * OS : Rocky Linux 9.5 (Blue Onyx) * Docker : 28.0.4 B. Portainer란? docker를 사용할 때 명령어 기반으로 사용해도 되지만... 여전히 GUI는 필요하다.(ㅎㅎ) Portainer를 간단하게 설명하면 docker 관리소프트웨어(웹기반)정도로 이해해도 된다. Portainer 공식 홈페이지에서 확인해보면 기능이 아주 많은 것 같은데... 사실 나의 경우에는 아주 단순한 기능만

By simplism
[Linux] Rocky Linux 9에 Docker 설치

[Linux] Rocky Linux 9에 Docker 설치

사용환경 1. Hardware : VMware 2. OS : Rocky Linux 9.5 (Blue Onyx) A. 시작하기 전에.. Docker 테스트를 위해서 VMware에 가상서버를 생성하고 Rocky Linux를 설치했다. 개인적으로는 Ubuntu를 선호하는 편인데, 회사에서 사용할 서버라서 다른 사람들과 같이 사용하기 위해서 RHEL이나 RHEL과 호환되는 배포판을 선택해서 사용하는 편이다. B. Docker 설치 전 작업 01. OS

By simplism
AI 환각 (AI Hallucination)에 대한 단상

AI 환각 (AI Hallucination)에 대한 단상

ℹ️단상 (斷想, 생각나는 대로의 단편적인 생각) 생각을 어떻게든 적어두지 않으면 시간이 지나 잊혀져서 약간은 두서없을 나의 생각을 적는 다는 의미로 "~에 대한 단상"이라는 글들을 적어보려고 한다. 오픈 AI의 ChatGPT가 촉발한 생성형 AI는 기념비적인 과학기술의 발전으로 진보할 것이라는 기대감과 다른 한 편으로는 이 놀라운 신기술로 촉발될 부작용에

By simplism
[리뷰] 켄싱턴 오르빗 (Kensington Orbit) 트랙볼 마우스

[리뷰] 켄싱턴 오르빗 (Kensington Orbit) 트랙볼 마우스

* 구매처 : 알리익스프레스 * 가격 : 35.15 $ (50,220원) 난 하루 종일 컴퓨터를 사용하는 직업이라서... 모니터, 키보드, 마우스는 중요하다. 키보드는 몇 번에 걸쳐서 바꿔왔지만, 마우스는 일반적인 마우스 -> 버티컬 마우스로 바꿔서 꽤 오랫동안 써왔던거 같다. 버티컬 마우스로 바꾸고나서 손목과 오른 팔의 통증이 많이 사라져서 만족하고 있었는데... QHD 해상도 2대의 모니터를 주력으로

By simplism