아, 바로 그 문제네요! systemctl enable --now podman.socket은 시스템(root) 레벨에서 실행되는데, 보통 Podman은 사용자 레벨에서 실행해야 합니다.
# 시스템 레벨 podman 소켓 (root)
sudo systemctl status podman.socket
# 사용자 레벨 podman 소켓
systemctl --user status podman.socket
# 현재 DOCKER_HOST 확인
echo $DOCKER_HOST
# 어떤 소켓이 활성화되어 있는지 확인
sudo ls -la /run/podman/podman.sock 2>/dev/null && echo "✅ 시스템 소켓 있음"
ls -la /run/user/$UID/podman/podman.sock 2>/dev/null && echo "✅ 사용자 소켓 있음"
# 1. 시스템 레벨 podman 소켓 중지
sudo systemctl stop podman.socket
sudo systemctl disable podman.socket
# 2. 사용자 레벨 podman 소켓 시작
systemctl --user enable --now podman.socket
# 3. DOCKER_HOST 환경변수 수정
export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
# 4. 영구 설정
echo 'export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock' >> ~/.bashrc
# 5. 연결 테스트
docker version
# 1. DOCKER_HOST를 시스템 소켓으로 설정
export DOCKER_HOST=unix:///run/podman/podman.sock
# 2. Harbor 설치 시 sudo 사용 (root 권한 필요)
cd /opt/harbor
sudo -E ./install.sh --with-trivy
# 3. docker-compose도 sudo로 실행
sudo -E docker-compose ps
cd /opt/harbor
# 현재 실행 중인 Harbor 중지 (root 모드)
sudo DOCKER_HOST=unix:///run/podman/podman.sock docker-compose down -v 2>/dev/null || true
# 시스템 레벨 podman 소켓 중지
sudo systemctl stop podman.socket
sudo systemctl disable podman.socket
# 사용자 레벨 podman 소켓 시작
systemctl --user enable --now podman.socket
# 상태 확인
systemctl --user status podman.socket
# DOCKER_HOST 재설정
export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
# 연결 테스트
docker version
docker-compose version
# 환경변수 영구 저장
echo 'export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock' >> ~/.bashrc
cd /opt/harbor
# 이미지 확인 (사용자 레벨 podman)
podman images | grep harbor
# 필요시 이미지 재로딩
podman load -i ./harbor*.tar.gz
# nginx-photon 이미지 확인/다운로드
podman images | grep nginx-photon || podman pull goharbor/nginx-photon:v2.13.2
# Harbor 시작 (사용자 레벨)
docker-compose up -d
# Podman 컨테이너 확인
podman ps
# docker-compose 관점에서 확인
docker-compose ps
# 포트 확인
ss -tlnp | grep :80
# 현재 소유권 확인
ls -la /opt/ | grep harbor
# 사용자 소유권으로 변경 (필요시)
sudo chown -R $USER:$USER /opt/harbor
# Harbor 데이터 디렉토리 권한 확인
data_path=$(grep '^[^#]*data_volume:' /opt/harbor/harbor.yml | awk '{print $NF}')
echo "Data path: $data_path"
sudo mkdir -p $data_path
sudo chown -R $USER:$USER $data_path
# 소켓 위치
/run/podman/podman.sock
# DOCKER_HOST
unix:///run/podman/podman.sock
# 실행 방법
sudo -E docker-compose up -d
# 소켓 위치
/run/user/$UID/podman/podman.sock
# DOCKER_HOST
unix:///run/user/$UID/podman/podman.sock
# 실행 방법
docker-compose up -d
# 현재 상태 진단
echo "=== 현재 Podman 소켓 상태 ==="
sudo systemctl is-active podman.socket
systemctl --user is-active podman.socket
echo "=== 현재 DOCKER_HOST ==="
echo $DOCKER_HOST
echo "=== 현재 Harbor 컨테이너 ==="
podman ps
echo "=== /opt/harbor 권한 ==="
ls -la /opt/ | grep harbor
권장: 방법 1 (사용자 레벨로 변경)을 사용하면 권한 문제 없이 Harbor를 정상적으로 실행할 수 있습니다!