(편집기 없는)컨테이너에서 파일 작성하기

특별한 경우가 아닌 한, 용량을 줄이기 위해 Docker Container에는 편집기가 없습니다. 그래서 보통은 컨테이너를 구동하는 호스트에 볼륨을 마운트하고 그 위치에서 파일을 작성하여 컨테이너와 공유합니다. 그런데, 벌써 컨테이너를 구동하여 사용하고 있는 경우, 또는 컨테이너 내부에서 사용되는 사용자의 uid가 호스트의 uid와 다르다면 갑자기 피곤함을 느끼고 의욕이 저하되기도 합니다. 몇 줄 안되는 설정을 담고 있는 파일 하나 추가하자고, 볼륨 설정하고 권한 변경하고 파일 작성 하고 수정하고 다시 컨테이너 구동하고... 그래서 간단한 파일을 만드는 경우 유용하게 쓸 수 있는 팁을 소개합니다. 1. echo 간단하게 echo 명령과 리디렉션(">" 또는 ">>")을 이용하는 방법이 있습니다. 한 두 ..

[LeetCode] 2. Add Two Numbers

2. Add Two Numbers : https://leetcode.com/problems/add-two-numbers/ 음이 아닌 Interger 수를 표현한 두 개의 링크드 리스트가 있다. 각 문자는 역순으로 저장되어 있고, 각 노드는 한개의 숫자를 담고 있다. 두 숫자를 합한 링크드 리스트를 반환하라. 두 개의 숫자는 0을 제외하면, 0으로 시작하지 않는다. Example 1: Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] Explanation: 342 + 465 = 807. Example 2: Input: l1 = [0], l2 = [0] Output: [0] Example 3: Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9..

[LeetCode] 1. Two sum

Integer 배열 nums 와 Integer target이 주어졌을 때, 합하여 target이 되도록하는 인덱스를 리턴하라. 각 입력은 정확히 한 개의 해를 가지며, 동일한 요소를 두번 사용하지 않는다. 정답의 순서는 관계없다. Example 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1]. Example 2: Input: nums = [3,2,4], target = 6 Output: [1,2] Example 3: Input: nums = [3,3], target = 6 Output: [0,1] Constraints: 2

Crontab이 갑자기 실행 되지 않을 때( with PAM ERROR )

서비스를 안정적으로 운영하기 위한 조건 중 하나는 백업을 열심히하는 것입니다. 그래서 백업을 포함한 몇가지 작업이 반복해서 수행 될 수 있도록, Crontab을 이용하고 있습니다. 그런 오늘 우연히 백업이 정상적으로 수행되고 있지 않은 것을 발견했습니다. 자정에 백업이 수행되어 데이터가 쌓이고 있어야 했는데, 백업 데이터는 물론이고 백업이 수행된 로그조차 남지 않았습니다. 원인을 찾던 중 "마치 Crontab이 실행이 되지 않은 것처럼" 로그 조차 남지 않았지? 라고 의문을 가지게 되어 Crontab 로그를 확인해보니 다음과 같은 에러 메시지를 확인할 수 있었습니다. Jan 19 00:03:01 server crond[12117]: pam_unix(crond:account): expired passwor..

Docker 데이터 저장 위치 변경하기.

Docker를 설치하면 root 드라이브를 사용하도록 설정됩니다. 이 경우 나중에 스토리지가 부족하게 야기하게 될 수 있기 때문에 데이터를 저장하는 위치를 변경해 두는 것이 좋습니다. 특히, 운영 중인 시스템이라면 반드시 변경해 두셔야 스토리지 때문에 서비스가 중단되는 위기를 피할 수 있습니다. ( 실제로 제가 이 문제로 서비스가 중단되는 경험을 했었습니다. -_-;; ) Ubuntu ubuntu에서 docker는 이미지와 컨테이너에서 사용하는 스토리지는 /var/lib/docker 하위를 사용합니다. 이 위치를 /data/docker/로 변경하려고 합니다. 모든 작업을 하기 전에 Docker를 중지하고, 작업을 마친 후에 Docker를 재시작해주어야 합니다. 이 방법 말고도 심볼릭 링크를 사용해서 변경..