얕고 넓게

[AI] Open-WebUI: Docker 설치, 지우기, 다시... @Ubuntu 본문

IT/AI.ML

[AI] Open-WebUI: Docker 설치, 지우기, 다시... @Ubuntu

블랙오닉스 2025. 4. 3. 21:21

2025.04.03

윈도우에 쉽게 설치되고 관리도 쉬워서 우분투에도 Docker를 설치 했다가 망했다.

특별한 내용이 없는데 하라는 대로 해도 에러가 나고...

https://docs.openwebui.com/getting-started/quick-start/

 

⏱️ Quick Start | Open WebUI

- Admin Creation: The first account created on Open WebUI gains Administrator privileges, controlling user management and system settings.

docs.openwebui.com

순서대로 하는데 뭔가 이상하다.

리눅스에서는 설치 위치가 /var/lib/docker로 되어 ssd 용량도 부족하다.

...

Docker Desk 도 설치

https://pajamacoder.tistory.com/29

 

[docker] docker root dir 변경

jetson tx2에서 작업을 하려다 기본 용량이 32GB 밖에 안되어 용량이 부족하다 생각해 docker image를 외부 저장 장치에 저장하기 위한 방법을 알아 보고 이를 정리 한다. 이 포스팅의 목적: docker image의

pajamacoder.tistory.com

 

 


용량 부족을 해결하기 위해

rm -rf  .docker/

rm -rf ~/.local/lib/python*
rm -rf ~/.local/bin/python*

rm -rf ~/.cache/pip


 Docker Image는 설계도이고, Container는 실행 중인 프로그램

GPU를 사용하려면 Docker Image와 Container 모두 GPU 지원 버전을 받아야 합니다.

Open-WebUI 문서에서 설명하는 방식은 기본 이미지를 다운로드한 후, 실행할 때 GPU를 활성화하는 방식

🔹 일반 이미지 다운로드
🔹 GPU 지원 컨테이너 실행

sudo nano /etc/docker/daemon.json

{
  "data-root": "/설정할/경로"
}

Docker 관련 계정을 모두 개인 사용자로 설정하려면, 기본적으로 root 권한을 최소화하고 사용자 계정 중심으로 Docker를 실행하는 방법을 사용해야 합니다. 다음과 같은 방식이 있어요:

 1. Docker 그룹에 사용자 추가
기본적으로 Docker는 root 권한으로 실행되는데, 특정 사용자 계정에서 직접 실행하려면  그룹을 활용하는 것이 좋습니다.

✅ 효과: 이렇게 하면 현재 계정에서  없이  명령어를 실행할 수 있습니다.
🔄 변경 적용을 위해 로그아웃 후 다시 로그인하세요.

🔹 2. 컨테이너 내부의 사용자 설정
Docker 컨테이너 내부에서도 기본적으로 root 사용자로 실행됩니다. 이를 개인 계정으로 변경하려면  옵션을 활용하면 됩니다.

✅ 효과: 컨테이너 내부에서 , 을 가진 일반 사용자 권한으로 실행됩니다.

🔹 3. Docker 저장 경로를 개인 계정으로 설정
Docker의 를 사용자의 홈 디렉토리로 설정하면, 개인 계정에서 관리하기 쉬워집니다.

파일에 다음 내용을 추가:

✅ 효과: Docker의 모든 데이터(이미지, 컨테이너 등)가 사용자 디렉토리에 저장됩니다.
🚀 적용 후 Docker를 다시 시작하세요:


 docker pull 을하면 docker-root가 root 소유가 된다.

Docker는 기본적으로 root 권한을 사용하기 때문에  실행 시 디렉토리 권한이 root로 변경될 수 있음.

아무튼 image 을 pull 하고 container를 실행

이번에는 llm/docker-root로 파일이 생기는 것 같다.

잘 안될 때는 껐다 켜기.

sudo systemctl daemon-reload
sudo systemctl restart docker

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main

윈도우에서는 :main 이미지를 받고 :cuda를 실행해도 됐는데, 리눅스에서는 에러가 난다.

docker pull ghcr.io/open-webui/open-webui:cuda

 

docker desk를 재 시작하면 root 위치가 바뀌는 것 같다.

일단 docker desk를 끄고 docker 다시 시작

conflict 이 난다고 나옮 :-(

docker container 지우기

~$ docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
docker: Error response from daemon: Conflict. The container name "/open-webui" is already in use by container "a9fcdec345df10446863fab691b56cdc99e043d0f629d87bcfda961cf685002b". You have to remove (or rename) that container to be able to reuse that name.

~$ docker rm open-webui
open-webui

이미지 확인

~$ docker image list
REPOSITORY                      TAG       IMAGE ID       CREATED      SIZE
ghcr.io/open-webui/open-webui   main      3ceeb44769a1   2 days ago   4.5GB
ghcr.io/open-webui/open-webui   cuda      c98c5dbaf5e0   2 days ago   8.82GB

다시 무한 루프

docker run 하면 에러

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]

설치

2. Install NVIDIA Container Toolkit
Docker requires the NVIDIA Container Toolkit to utilize GPUs. Install it using:

sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo systemctl restart docker

또 에러

패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다... 완료 상태 정보를 읽는 중입니다... 완료
E: nvidia-container-toolkit 패키지를 찾을 수 없습니다

 

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

 

툴키 저장소 에러.

직접 검색

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

성공

docker run -d -p 3000:8080 -e WEBUI_AUTH=False -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main

또 에러 -> 아참 docker 다시 시작 먼저

~$ docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
90ea968aa70488c111297d7a9a4ede24313e2bc090d389ad216a8f3db1e6f6e2
~$ docker container ls
CONTAINER ID   IMAGE                                COMMAND           CREATED              STATUS                                 PORTS                                         NAMES
90ea968aa704   ghcr.io/open-webui/open-webui:cuda   "bash start.sh"   About a minute ago   Up About a minute (health: starting)   0.0.0.0:3000->8080/tcp, [::]:3000->8080/tcp   open-webui

드디어

그런데 localhost:3000에 문제가 -> 한참 후에 접속된다.


2025.04.04

Open-WebUI에서 모델을 못찾는다.

검색해 보니 로그를 보라고 함

docker logs open-webui

host....에 접속을 못하고 있음

여러가지 방법을 해봤지만 안되었다가 ChatGPT에서 해답

127.0.0.1로 하면 Docker에서 접속이 안될 수 도 있으니 0.0.0.0으로

export OLLAMA_HOST=https://0.0.0.0:11434

Ollama 다시 시작 -> 된다.

'IT > AI.ML' 카테고리의 다른 글

[AI] 환경설정 @Ubuntu  (0) 2025.04.09
[AI] Llama 파인튜닝 with Copilot  (0) 2025.04.08
[AI] Open-WebUI: Docker 설치 @Windows11  (0) 2025.04.01
[AI] Open-WebUI Development Guide  (0) 2025.03.21
[AI] Open-WebUI 설치 방법 정리  (0) 2025.03.19