Portainer는 “Docker Desktop의 웹 버전”처럼, 브라우저에서 컨테이너, 이미지, 볼륨 등을 클릭으로 관리할 수 있게 해주는 툴이다.
1. 이미지 다운로드
docker pull portainer/portainer-ce
2. portainer_data를 공유하는 volume 생성
docker volume create portainer_data
- Portainer의 영구 데이터 저장소(설정, 사용자 정보 등)를 저장할 Docker 볼륨을 생성한다. 이 볼륨은 컨테이너가 삭제되어도 데이터를 유지할 수 있게 해준다.
3. 컨테이너 실행하기
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer-ce
- -d: 백그라운드에서 실행하게 한다. (detached mode)
- -v /var/run/docker.sock:/var/run/docker.sock: 컨테이너에서 호스트 Docker에 직접 접근할 수 있도록 Unix socket 공유를 하며 이를 통해 Portainer 컨테이너가 호스트 Docker의 엔진을 제어 가능하게 된다.
- -v portainer_data:/data: portainer_data라는 이름의 Docker Volume을 생성/마운트를 하여 Portainer의 설정, 사용자 정보, 상태 등을 /data 디렉토리에 저장시킨다. (컨테이너를 삭제하더라도 이 데이터는 유지된다.)
- --restart=always: Docker의 재시작 정책이며, 이 옵션은 다음 상황에서 컨테이너를 자동 재시작시킨다:
- 컨테이너가 비정상적으로 종료되는 경우
- Docker 데몬이 재시작 되는 경우
- 서버가 재부팅되는 경우
실행 중인 컨테이너 확인하기
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
598aaaa07513 portainer/portainer-ce "/portainer" 26 seconds ago Up 26 seconds 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp elated_villani
이렇게 실행한 후에 localhost:9000으로 접속하면 다음과 같은 브라우저 기반 GUI화면을 볼 수 있다.
여기서 비밀번호를 생성하면 된다. 일단, password1234로 지정해두었다.
만약 오래 켜둔 상태라면 세션이 종료되어 다음과 같은 화면이 나올 수 있다.
만약 세션이 종료된 경우에는 restart 명령어로 재시작해주면 된다.
docker restart 598aaaa07513
이제 재시작해서 접속을 하게 되면 다음과 같은 화면들을 볼 수 있다. 실제 로컬에서 도커에서 어떤 이미지를 설치했고, 어떤 컨테이너를 실행하고 있는지를 파악할 수 있다.