목록2024/06 (8)
내 잡다한 노트
컨테이너 이미지를 저장하고 배포하기 위해 Registry와 Repository를 사용한다. Registry는 도커 이미지를 저장하는 서버이다. Repository는 레지스트리 내에서 특정 이미지의 버전들을 관리하는 단위이다. 각 레포지토리는 여러 버전(태그)을 저장한다. 예를 들어, nginx 라는 레포지토리 안에는 nginx:latest, nginx:1.19, nginx:1.18 등과 같은 여러 버전의 이미지가 있을 수 있다. Registry에는 하나 이상의 Docker Repository를 포함할 수 있다. 이미지를 저장하고 관리하며, 이미지의 push 및 pull 요청을 처리한다. Docker hub가 유명한 공용 Registry이다. 우리가 도커 명령어로 pull을 해올 때 여기서 이미지를 다운받..
docker를 자주 사용하다보니 dangling image들이 존재한다.dangling은 none:none 처럼 이름도 태그도 달려있지 않은 이미지이다.이게 생기는 원인은 이미지 빌드를 하는데 기존 이미지 이름과 태그가 동일할 경우, 기존 이미지가 이렇게 바뀌게 된다. 쓰지 않으므로 삭제하면 된다. docker images를 통해 확인할 수 있다.(만약 none 으로 된 image들이 있다면)docker image prune 를 해주자. 이렇게 되면 가동중인 컨테이너의 이미지를 제외하고 안쓰이는 것들을 삭제할 수 있다.docker images -f "dangling=true" 로 none들이 어떤게 있는지 확인할 수 있다. dangling 이미지들을 정리해도 용량이 크게 확보되지 않을 수 있다.docke..
먼저, swarm 실습을 위해서는 여러 호스트가 필요하다. vm을 사용하는 방법도 있고, 하나의 컴퓨터만 사용해야한다면 docker in docker(DinD)라는 이미지가 있는데 도커 컨테이너안에서 컨테이너를 또 만드는 방식을 통해 여러 호스트를 만든 것처럼 할 수 있다. 나는 aws도 연습할 겸 Auto scaling을 활용하여 3개의 인스턴스를 만들고 보안그룹으로 포트를 열어놓은 뒤 실습을 진행하였다. swarm 관련해서 열어두어야 할 포트는 2377, 7947, 4789 포트이다. 3개의 인스턴스가 같은 vpc에 있고 같은 서브넷에 있으므로 내부ip를 통하여 연결하였다. swarm에는 매니저노드, 워커노드가 존재한다. 매니저노드의 역할은 worker 노드들을 관리하는 역할이다.좀 더 정확히 말하..
if문은 다 알거라고 생각한다.나는 if문에 다양한 옵션들을 기억하기 위해 이 글을 쓰고자 한다. -e FILE-> 파일이 존재하는지 검사 -d Directory-> 디렉토리인지 검사 -r , -w , -x FILE-> 각각 읽고, 쓰고, 실행 할 권한이 있는지 검사함 -z STRING-> 문자열이 비어 있는지 검사
awk도 sed와 마찬가지로 자주 까먹는다 ㅎㅎ;; [ 주요 용도 ] 텍스트 파일의 각 행을 처리하고, 특정 패턴을 찾거나, 데이터 필드를 추출 및 변환하는 데 사용된다. [ 기본 구문]awk 'pattern { action } ' file pattern 은 매칭 패턴을 의미한다. 행이 이 패턴과 일치하면 action이 실행된다.action은 수행할 작업이다. 필드에 대해 접근할 때는 $숫자 를 사용한다.여기서 $0 은 전체 행이고, $1, $2 ... 부터 각 필드를 나타낸다. 내장 변수가 있는데,,,NR : 현재 행 번호NF : 현재 행의 필드 개수FS : 필드 구분자(Separator). 기본값은 공백이다. [ 예제 ]echo "Hello World" | awk '{ print $0 }' awk ..
요새 회사에서 서버 관리를 위해 여러가지 스크립트를 짜고 있다.회사에서 teams를 쓰다보니 teams 웹훅으로 알림이 오게끔 하는 스트립트 같은 것도 짰었다. 암튼, 요새 쉘 스크립트로 뭔가를 막 만드는데 sed 는 뭔가 봐도 잘 생각이 안나서 적을려고 한다. sed -> Stream EDitor 텍스트 파일을 편집하거나 텍스트 데이터를 처리할 때 사용됨.주로 패턴 매칭, 텍스트 변환, 치환 등의 작업을 수행한다. 파일이나 표준입력으로부터 데이터를 읽어 들여 지정된 명령어에 따라 변환한 후 출력으로 내보낸다. [ sed의 기본 구문 ]sed [OPTIONS] 'COMMAND' [FILE...] [ 주요 옵션]-i : 원본 파일을 백업하고 편집 결과를 원본 파일에 덮어씌움. [ 주요 명령어 ]s/..
간단하게 적을 생각이다. 앤써블은 서버들에 공통적인 작업들을 할 때 유용하게 쓰일 수 있는 IaC 도구이다.예를 들어, 스크립트 배포라던가 패키지를 설치한다던가 crontab에 어떤 작업을 등록하고 싶다거나 하는 등의 작업을 공통적으로 하고 싶을 때 사용하면 된다. 써본 경험이 많진 않아 나도 어디까지 가능한 지는 잘 모르겠다 ㅎㅎ; 앤써블은 ssh를 통해 작업을 하기 때문에 서버의 계정에 ssh key 등록을 통해 접속이 가능하게끔 해줘야 한다. 그리고 서버 정보들(IP, Alias)에 대한 설정을 hosts.yaml에서 작성을 해야한다. 여기에서 서버들을 적어두어야한다.이때, 그룹별로 서버들을 지정해둘 수 있어 playbook을 실행할 때 등록된 모든 서버가 아닌 해당 그룹들에 속하는 서버들에만 실..
학교 프로그램으로 인턴십을 수행하는 중이다.인프라 관련 일을 하고 있고, 모니터링과 리눅스 서버 관리를 주로 하고 있는 중인데서버가 여러개다 보니 한번에 관리하는 방법을 찾고 있었고, 예전에 IaC (Infrastructure as Code) 의 도구 중 하나인Ansible를 사용하면 쉽게 관리할 수 있다는 글을 봤던 기억이 났다. 서버에 한꺼번에 만들어둔 스크립트 파일을 배포하는 일을 쉽게 하고 싶었는데 Ansible을 사용하면 지정해둔 서버에 한꺼번에 배포가 가능하다는 것을 알게되고 후딱 배워서 실행하니...와... 이걸 이제 알았다는게 아쉬울 정도였다 ㅎㅎ