본문 바로가기

IT102

표준입력, 표준출력, 표준에러출력 리눅스를 비롯한 유닉스계열OS에는 입출력을 통일된 방식으로 다루는 표준 입력(STDIN), 표준 출력(STDOUT), 표준 에러출력(STDERR) 이렇게 세 종류의 입출력이 있다. 보통 표준 입력은 키보드, 표준출력과 표준 에러출력은 터미널(화면)과 연결된다. $ sort (enter) Cat (enter) Bean (enter) Apple (enter) (ctrl + d) Apple (sort 명령어 실행 결과.표준출력) Bean (sort 명령어 실행 결과.표준출력) Cat (sort 명령어 실행 결과.표준출력) 위 예제처럼 정렬할 값들을 키보드로 입력하고 입력 종료를 뜻하는 Ctrl + d 키를 누르면 입력한 값을 정렬해서 결과를 화면에 표시한다. 표준입력, 표준출력, 표준에러출력은 어디서 받아서 .. 2023. 1. 25.
9. 도커 엔진, cgroups 리눅스 호스트에 docker를 설치하면 컴포넌트가 3개 설치된다. Docker Daemon은 docker객체인 이미지와 컨테이너, 볼륨 및 네트워크를 관리하는 백그라운드 프로세스이다. Docker REST API 서버는 프로그램이 쓰는 API인터페이스로 Daemon과 통신하고 명령어를 제공할때 사용된다. Docker CLI는 명령줄 인터페이스이며 컨테이너 실행, 중지 및 이미지 제거 등에 사용된다. 또한 REST API를 사용하여 Docker Daemon과 상호작용하는데 이때는 Docker CLI가 반드시 같은 호스트에 있지 않아도 된다. docker 명령어에서 -H 옵션을 사용해서 원격 Docker Engine의 주소와 포트를 지정하면 된다. cgroups Docker 호스트와 컨테이너는 CPU와 메모.. 2023. 1. 25.
8. docker registry 도커 레지스트리는 docker 이미지가 저장되어있는 공간이다. nginx 이미지를 보자 User 부분은 사용자나 계정 이름을 나타낸다. Image 이름 부분과 동일하면 생략가능하다. docker.io는 docker의 기본 레지스트리인 Docker Hub이고 기본값으로 지정되어 있어 생략가능하다. Docker Hub 외에도 다양한 레지스트리가 있다. 예를 들면 gcr.io인 Google 레지스트리가 있다. 누구든 다운로드해서 사용 가능한 공개 이미지들이 있다. 하지만 인하우스 방식으로 개발한 애플리케이션이라면 공개되어선 안된다. 그럴때 사용하는것이 내부 프라이빗 레지스트리이다. 프라이빗 레지스트리 배포하기 docker registry 자체가 또 다른 애플리케이션이 되므로 docker 이미지로 사용할 수 있.. 2023. 1. 25.
7. docker compose 다수의 서비스를 실행하는 복잡한 애플리케이션을 설정하기위해서는 docker compose를 사용하는게 좋다. yaml형식의 구성파일인 docker-compose.yml을 생성하고 $ docker-compose up 명령어를 실행하기만 하면 docker-compose.yml에 구성한 애플리케이션 스택 전체를 불러올 수 있다. 대신 하나의 docker host에 실행되는 컨테이너에만 사용할 수 있다. 예들들어 파이썬으로 개발한 voting-app 으로 투표를 하면 redis 인메모리 db에 저장되고 .NET으로 개발한 worker 서버가 영구 스토리지에 업데이트하는데 이 때 영구 스토리지는 PostgreSQL이다. 그리고 투표 결과는 Node.js로 개발했다. $ docker run -d --name=red.. 2023. 1. 25.
리눅스 명령어-11 파일 링크, 파일 찾기 1. 파일 링크 걸기 1. 하드링크 걸기 $ ln [링크걸 파일] [링크파일 이름] 2. 심볼릭 링크 걸기 $ ln -s [링크걸 파일] [링크파일 이름] 파일에 링크를 거는 명령어는 ln이다. 이 명령어는 어떤 파일을 다른 파일명으로 참조하거나 다른 디렉터리에서 전체 경로 지정을 하지 않아도 손 쉽게 참조하고 싶을 때 사용한다. cp명령어로 파일을 복사하면 파일 시스템에 동일한 파일이 생기지만 ln명령어는 파일 자체를 복사하지 않고 참조(링크)만 만들어서 효율적으로 사용한다. 위와같이 ls -l 명령어로 링크파일과 원본파일의 대응관계를 확인할 수 있다. 2. 파일 찾기 $ find [검색할 디렉터리] -name [찾을파일이름] -print ex) 홈 디렉터리 이하를 검색해서 파일명이 words 인 파일.. 2023. 1. 24.
리눅스 명령어-10 파일 압축 1. 파일 압축하고 풀기 1. gzip 형식으로 압축하고 풀기 $ gzip file $ gunzip file.gz 2. bzip2 형식으로 압축하고 풀기 $ bzip2 file $ bunzip2 file.bz2 3. xz 형식으로 압축하고 풀기 $ xz file $ unxz file.xz 2. 압축 파일 내용 출력하기 1. gzip 형식 파일 내용 표시 $ zcat file.gz 2. bzip2 형식 파일 내용 표시 $ bzcat file.bz2 3. xz형식 파일 내용표시 $ xzcat file.xz 3. 파일 묶고 풀기 1. 아카이브 파일로 묶기 $ tar cf [만들파일명.tar] [묶을파일1, 묶을파일2, 묶을파일3 ...] ex) words1 words2 words3 파일을 words.tar 파.. 2023. 1. 23.