# Ollama 내부 접속
docker exec -it ollama bash
# 사용할 디렉토리 생성
mkdir ~/evee
# 컨테이너 밖에서 작업
# 호스트의 모델을 ollama 컨테이너로 이동
docker cp ./ggml-model-Q4_K_M.gguf ollama:/root/evee
# 컨테이너 내부 접속후
#파일 확인
/root/evee
Custom Model 생성
생성을 위한 모델 설정 파일 생성
Modelfile
FROM ggml-model-Q5_K_M.gguf
TEMPLATE """{{- if .System }}
<s>{{ .System }}</s>
{{- end }}
<s>Human:
{{ .Prompt }}</s>
<s>Assistant:
"""
SYSTEM """A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions."""
PARAMETER stop <s>
PARAMETER stop </s>
모델 생성
# 커스텀 모델 생성
ollama create EEVE-Korean-10.8B -f ./Modelfile
# 모델 확인
ollama list
모델 실행
컨테이너 내부에서 사용
# 컨테이너 내부에서 모델 실행
ollama run EEVE-Korean-10.8B:latest
컨테이너 외부에서 사용
# 컨테이너 외부에서 모델 실행
docker exec -it ollama ollama run EEVE-Korean-10.8B:latest
#의존성 패키지 설치
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
#Docker 공식 GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#docker Rpository 추가
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#Docker 설치
sudo apt update
sudo apt install docker-ce
# 설치 확인
sudo docker --version
#docker 시작
sudo service docker start
docker ps
Docker hub에서 mariaDB 검색
#도커 이미지 다운로드
docker pull mariadb
# 도커 이미지 확인
docker images
#이미지를 사용하어 컨테이너 생성
docker run --detach --name mariadb --env MARIADB_ROOT_PASSWORD=123 -p 3306:3306 mariadb:latest
#docker container 상태 확인
docker ps
# 컨테이너에 접속
docker exec -it some-mariadb bash
#컨테이너에서 mariadb DBMS 접근(위 설정에서 비밀번호는 123)
mariadb -u root -p
# 데이터 베이스 조회
show databases;
# 데이터베이스 생성
create database portfolio;
# 데이터베이스 접속
use portfolio;
# 쿼리 실행 확인
select now()
# timezone 세팅
SET global TIME_ZONE='+09:00';
SET session TIME_ZONE='+09:00';
# 확인
select now();
# 계정생성
CREATE USER 'adm'@'%' IDENTIFIED BY '123';
# 권한부여
GRANT ALL PRIVILEGES ON portfolio.* TO 'adm'@'%';
# 권한 부여 반영
FLUSH PRIVILEGES;
Docker volume
Volume을 설정하지 않는다면 도커의 컨테이너를 삭제 시 mariaDB의 데이터 또한 모두 삭제 된다.
Volume을 사용하여 컨테이너 내부와 host의 디렉토리를 공유 하는것으로 container가 삭제 되더라도 volume을 사용한다면 신규 컨테이너에서 host의 파일을 읽기 때문에 데이터의 손실이 없다.
Ex
docker-compose
services:
mariadb:
container_name: mariadb
image: mariadb:(버전 기재)
restart: always
# 환경에 따라 변경
expose:
- "3306"
volumes:
# DB 데이터 저장 디렉터리
- ./data:/var/lib/mysql
# 설정 파일 저장될 위치
- ./config:/etc/mysql/conf.d
environment:
# 정의하지 않으면 실행 시, 에러가 발생합니다.
- "MYSQL_ROOT_PASSWORD=(root 계정의 PASSWORD 정의)"
# 컨테이너 내의 시스템 타임존을 우리나라에 맞게 설정합니다.
- "TZ=Asia/Seoul"
command:
# 위 명령어를 사용하지 않으면, 일부 설정이 latin으로 설정됩니다.
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci