분류 전체보기 1187

[Docker] Bind Mount

개요 2023.07.12 - [Docker] Volume에서 컨테이너에서 사용한 데이터를 유지하기 위한 방법 중 하나인 Volume에 대해서 알아보았다. 이 글에서는 다른 방법 중 하나인 Bind Mount에 대해서 정리한다. Bind Mount Docker 프로세스가 관리하는 호스트 경로를 저장 공간으로 사용하는 Volume과 다르게, Bind mount는 호스트에 저장된 임의의 파일 또는 경로를 컨테이너에 마운트 하여 사용할 수 있다. 파일이나 경로는 호스트 시스템에서 절대 경로로 참조된다. 만약 호스트에 존재하지 않는 파일이나 경로를 마운트 시도하는 경우, Docker에 의해 자동으로 생성된다. Bind Mount 하여 컨테이너 실행 Volume을 사용하는 것과 동일하게 --mount, -v 옵션으..

Docker 2023.07.13

[Docker] Volume

개요 기본적으로 Docker 컨테이너 내에 저장되는 데이터는 컨테이너가 삭제될 때 휘발된다. 컨테이너 생명주기와 관계없이 데이터를 유지하기 위해서는 컨테이너 내 저장 공간을 호스트와 연결해야 하는데, Docker는 그 방법 중 하나로 Volume을 제공한다. 이 글에서는 Volume에 대해 정리해보려고 한다. Volume Volume은 컨테이너에서 생성되거나 사용되는 데이터를 유지하기 위한 방법 중 하나로, Docker가 관리하는 Host 파일 시스템의 일부에 컨테이너 데이터가 저장된다. Linux의 경우 /var/lib/docker/volume에 해당한다. Docker CLI나 API를 통해 Volume을 관리할 수 있고 백업 또는 마이그레이션 하기 좋다. Volume 생성 / 조회 / 삭제 Docke..

Docker 2023.07.12

[Airflow] DockerOperator

DockerOperator Airflow에서 작업을 도커 컨테이너 내에서 실행시켜야 한다면 DockerOperator 사용을 고려해 볼 수 있다. 스케쥴링될 작업을 수행할 때 미리 구성한 도커 이미지로 컨테이너를 생성한 후, 컨테이너 안에서 작업을 수행한다. 이 글에서는 간단히 DockerOperator를 이용한 작업을 수행해보려고 한다. 패키지 설치 Airflow에서 도커 관련 기능을 사용하기 위해서는 추가로 패키지를 설치해주어야 한다. pip install apache-airflow-providers-docker airflow 사용자에 도커 실행 권한 추가 airflow를 통해 도커 컨테이너를 실행시키기 위해서는 airflow를 실행하는 사용자에게 도커를 실행시킬 수 있는 권한이 부여되어 있어야 한다..

Apache Airflow 2023.07.11

[AWS] ECR Private Repository에 이미지 푸시

개요 2023.07.07 - [AWS] ECR 이란?에서 ECR의 개념, 구성 요소, 특징 정도를 간단하게 살펴보았다. 이 글에서는 실제로 레포지터리를 생성해보고, 도커 이미지를 푸시해보려고 한다. 생성할 레포지터리는 프라이빗 레포지터리고, 관련 권한은 이미 부여되어 있다고 가정한다. 참고로 AWS EC2 Ubuntu 20.04에서 테스트하며 EC2에는 간단히 EC2InstanceProfileForImageBuilderECRContainerBuilds 정책을 적용했다. 레포지터리를 사용하기 위해서는 aws cli와 docker가 필요하므로 미설치 상태라면 설치하도록 한다. apt install awscli apt install docker.io 레포지터리 생성 프라이빗 레포지터리를 생성해본다. 1. AW..

AWS 2023.07.10

[AWS] ECR 이란?

ECR Amazon Elastic Container Registry의 약자로, 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스이다. DockerHub처럼 Docker 이미지를 저장하고 사용할 수 있다. AWS IAM 기반으로 특정 사용자나 EC2 인스턴스가 레포지터리나 이미지에 접근할 수 있도록 제어하는 프라이빗 레포지터리를 지원한다. 퍼블릭 레포지터리로도 사용할 수 있다. 이 글에서는 ECR에 개념적인 부분만 간단히 정리한다. 특징 1. OCI(Open Container Intiative) 표준 및 Docker Registry HTTP API V2 지원 - Docker CLI 명령을 통해 ECR을 사용할 수 있다. 또한 Docker 컨테이너 이미지 및 관련 OCI..

AWS 2023.07.07

[Linux] htop - Filter 기능

개요 htop으로 모니터링을 할 때 특정 문자열을 포함하는 프로세스 정보만 보고 싶을 때는 Filter 기능을 사용할 수 있다. 이 글에서는 htop으로 특정 문자열을 포함하지 않는 프로세스 정보를 확인하는 방법을 적어둔다. 추가로 Filter 기능 사용 방법도 적어둔다. Filter htop에서 필터링 기능은 아래와 같이 사용할 수 있다. 1. htop 실행 2. F4 입력하여 Filter 모드 진입 3. 검색 문자열 입력 후 엔터 ssm이라는 문자열을 포함하는 프로세스만 출력되는 모습을 확인할 수 있다. 만약 필터링 조건을 초기화하고 싶다면 다시 필터 모드를 활성화한 뒤 Esc를 입력하면 된다. htop 부정 필터 유감스럽게도 htop 공식적으로는 positive 필터 기능만 지원하고 있는 것 같다...

Linux 2023.07.06

[Linux] pgrep - 프로세스 id 찾기

pgrep 정규식 패턴으로 프로세스의 이름을 검색하여 일치한 프로세스의 ID를 반환하는 도구이다. pidof, ps 등과 비슷한 역할을 한다. 기본 용법 pgrep [OPTIONS] 기본적으로 옵션 없이 사용하면 패턴에 일치한 프로세스의 ID를 확인할 수 있다. 사용 예시 1. PID를 공백으로 구분하여 출력 pgrep -d' ' # -d : --delimiter. 출력에서 process id의 구분자를 지정한 문자열로 사용. 기본값은 개행문자. 2. 프로세스 이름과 함께 출력 pgrep -l # -l : --list-name. 프로세스 이름과 프로세스 ID 출력 3. 명령어와 함께 출력 pgrep -a # -a : --list-full. 프로세스 명령어와 프로세스 ID 출력 4. 패턴과 일치하지 않는 ..

Linux 2023.07.05

[Python] Pandas - datetime64 Series를 datetime.datetime으로 변환

개요 다음과 같은 날짜 데이터로 이루어진 DataFrame이 있다고 하자. import pandas as pd import numpy as np date_str = ["2018, 1, 1", "2018, 1, 4", "2018, 1, 5", "2018, 1, 6"] df = pd.DataFrame(pd.to_datetime(date_str), columns=['diagnosis_date']) 이 날짜 데이터를 Python의 datetime 타입의 데이터를 원소로 하는 리스트로 변환하고자 다음과 같이 실행하면…… list_date = df['diagnosis_date'].values.tolist() 이런 숫자값이 나온다. 아무래도 Timestamp로 취급된 것 같다. 어떻게 해야 datetime 객체를 원..

[프로그래머스] 달리기 경주

문제 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/178871 얀에서는 매년 달리기 경주가 열린다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부른다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 "soe" 선수가 "mumu" 선수를 추월했다는 뜻이다. 현재 등수 순서대로 선수들의 이름이 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해..

Algorithm 2023.07.03

[Git] 특정 파일만 특정 버전으로 되돌리기

개요 원인은 잘 모르겠지만…… 서버에서 작업한 파일의 내용만 삭제되어 있는 것을 확인했다. 로컬 레포지터리에 여러 파일이 있지만 다른 파일은 최신 상태로 두고, 이상이 있는 파일만 특정 버전 상태로 되돌리고 싶다. 명령어 checkout 명령을 사용하면 원하는 파일만 원하는 버전으로 돌릴 수 있다. git checkout COMMIT_HASH FILE # 예시 git checkout 917b9e21cb3b6beb402427d49598d1dcd553bc87 ./src/test.py 참고 문서 https://computer-science-student.tistory.com/490 https://suwoni-codelab.com/git/2018/04/25/Git-checkout/

Git | GitLab 2023.06.30