기본 콘텐츠로 건너뛰기

3월, 2024의 게시물 표시

Docker Image 를 로컬 파일로 저장하기

컨테이너 이미지를 활용하여 빠르게 서버 환경을 구축하는 건 요즘 흔한 일이다. 다만 오프라인 환경에서는 외부 환경에서 이미지를 가져올 수 없기 때문에, 컨테이너 이미지를 활용하기 위해서는 파일로 변환하여 폐쇄망으로 자료 전송하는 등의 과정이 필요하다. ## 외부 image 를 로컬 파일로 저장 ``` ## (online) - image download docker pull {image}:{tag} --platform={platform} ## (online) - image -> tar package docker save {image}:{tag} > {image_filename}.tar ``` ## 로컬 파일 image 를 로드 ``` ## (offline) load image from package docker load -i {image_filename}.tar ## (offline) check image loaded docker image ls ```

특정 문자열을 파일에서 일괄 변경하기

## `fruit.txt`  파일 내에 있는 모든 `apple` 을 `banana` 로 변경 ``` # linux sed -i 's/apple/banana/g' /fruit.txt ``` mac 의 경우 sed 의 -i 에 extension 파라미터가 필요하다. extension은 변경하는 파일을 복사한 뒤 붙일 일종의 postfix 이다. 원본 문서를 저장해두지 않을 경우 빈칸으로 두자. ``` # mac sed -i '.old' 's/apple/banana/g' /fruit.txt ```

Python 에 특정 OpenSSL 버전 연동하여 설치

## 문제 urllib3 을 사용할 때, 다음과 같은 에러가 발생하면서 python 스크립트가 실행되지 않는다. ``` ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips 26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168 ``` 원인을 파악해보고자 구글링을 하니 다음과 같은 공식 가이드와 짤막한 해결방안이 있었다. 요약하면, urllib3 부터는 OpenSSL 1.1.1+ 버전만을 지원하므로, 서버에 설치되어 있는 openssl 버전을 업그레이드 하여야 한다. 제공된 가이드의 경우 RHEL7 의 경우 os 업그레이드를 하라는 배보다 배꼽이 다소 더 큰 가이드를 하고 있다. [https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html#common-upgrading-issues](https://urllib3.readthedocs.io/en/latest/v2-migration-guide.html#common-upgrading-issues) ## 해결방안 python 을 업그레이드한 openssl 을 연동해서 직접 컴파일하여 설치해보자. (아래의 [stackoverflow 글](https://stackoverflow.com/questions/69371800/how-to-link-python3-to-use-openssl11-or-latest-version-of-openssl-1-1-1-on-c)을 참고하였습니다.) ### OpenSSL 설치 ``` # Install OpenSSL 1.1.1 cd /opt curl https://ftp.openssl.org/source/old/1.1.1/openssl-1.1.1o.tar.