Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- c3 초
- c3 step graph
- centos pyhon 설치
- InfluxDB
- 정규식 문자열 출력
- python os
- grafana dashboard
- c3 축 가리기
- python subprocess
- gcc 업데이트
- CentOS7
- c3 second
- gcc regex
- c++ 정규식
- 1697
- 정규식 활용
- regex_search
- linux시간으로 변경
- telegraf
- c3 축 없애기
- snmp
- selinux port 등록
- 정규식 컴파일
- subporcess path
- snmp test
- g++ 업데이트
- python popen
- influxdb 설치
- semanage
- 백준
Archives
- Today
- Total
리셋 되지 말자
Minio 사용해보기 본문
개요
python 컨테이너와 minio 컨테이너를 docekr compose로 생성하고, 간단한 파일을 업로드 해봅니다
docker compose 작성
python, minio 컨테이너를 생성합니다
version: "3"
services:
python:
image: python:3.10-slim
command: sleep infinity
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
volumes:
- minio_volume:/data
environment:
- MINIO_ROOT_USER=minioroot
- MINIO_ROOT_PASSWORD=minioroot
ports:
- "9000:9000"
- "9001:9001"
volumes:
minio_volume:
# docker-compose up
실행 후, localhost:9001 minio 콘솔에 접속 후, docker-compose.yml에 지정한 minioroot, minioroot로 로그인 합니다
Access Keys 탭에서 Create access key로 생성합니다
Expiry, Name 등 정보는 기입 안해도 됩니다
bucket 탭에서 'test' 이름의 버킷도 생성해줍니다
python 컨테이너에 접속합니다
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc0047afde5f minio/minio:latest "/usr/bin/docker-ent…" 18 minutes ago Up 18 minutes 0.0.0.0:9000-9001->9000-9001/tcp minio-minio-1
bcef024fc019 python:3.10-slim "sleep infinity" 18 minutes ago Up 18 minutes minio-python-1
$ docker exec -it bcef024fc019 bash
root@bcef024fc019:/#
boto3를 설치하고, vim도 설치합니다
root@bcef024fc019:/# mkdir app
root@bcef024fc019:/# cd app
root@bcef024fc019:/app# pip install boto3
root@bcef024fc019:/app# apt update -y && apt install -y vim
minio에서 생성한 키를 환경변수로 설정합니다
root@bcef024fc019:/app# export AWS_ACCESS_KEY_ID=BehWjSHZ6CyrZNIb9fq7
root@bcef024fc019:/app# export AWS_SECRET_ACCESS_KEY=8IZWzIRjj6dzuEvwJYVt8htsio3irt5yconyxNd8
업로드할 파일을 임시로 생성합니다
root@bcef024fc019:/app# echo 123 > tmp.txt
root@bcef024fc019:/app# cat tmp.txt
123
아래 파일을 python 컨테이너에서 생성 후, 실행하여 'test' 버킷에 tmp.txt 파일을 업로드 해봅니다
import boto3
# MinIO 서버의 엔드포인트, 액세스 키 및 시크릿 키 설정
minio_endpoint = 'http://minio:9000'
# boto3를 사용하여 MinIO 클라이언트 생성
minio_client = boto3.client('s3',
endpoint_url=minio_endpoint,
config=boto3.session.Config(signature_version='s3v4'))
# 업로드할 파일과 버킷 이름 설정
file_path = 'tmp.txt'
bucket_name = 'test'
object_name = 'tmp.txt'
# 파일 업로드
with open(file_path, 'rb') as file_data:
minio_client.put_object(Bucket=bucket_name, Key=object_name, Body=file_data)
print(f"File uploaded to MinIO: {object_name}")
결과는 아래와 같습니다
object_name에 디렉토리를 추가하면 (tmp.txt -> /dir/tmp.txt) 아래와 같이 디렉토리가 생성되며 파일이 업로드 됩니다
'Docker' 카테고리의 다른 글
[buildx] buildx 사용하기 - volume 마운트 실행 (2) | 2023.01.06 |
---|---|
[buildx] buildx 사용하기 - 설치 (0) | 2023.01.06 |
docker image 실제 크기 (0) | 2022.02.10 |
[source code] build 코드 (0) | 2021.12.03 |
[docker] docker logs -f <컨테이너명> (0) | 2021.07.14 |
Comments