기간 | 230731 - 230804 |
배운 내용 | 리눅스, 도커 |
◎ 리눅스
1. vagrant
- vagrant 사용법
1) vagrantfile 작성 <- 가상머신 관리할때 관리할 대상 vagrantfile로 지정
=> 가상머신의 스펙 설정
2) 명령어로 관리(vagrantfile이 있는 위치에서 실행해야 함)
vagrant up : 가상머신 생성/부팅
vagrant plugin install/uninstall/list : 플러그인 설치/삭제/확인
vagrant halt : 가상머신 종료
vagrant destroy : 가상머신 삭제
vagrant status : 가상머신 확인
vagrant ssh VMNAME : 가상머신에 원격접속
vagrant snapshot save/restore : 가상머신 스냅샷 관리 (가상머신 특정상태 저장)
2. 리눅스 명령어
ls : 파일목록, 파일 상세정보 보기
touch fileA : fileA 생성(빈파일 생성)
mkdir dirA : dirA 디렉토리 생성
pwd : 현재 디렉토리의 경로 출력
touch dirA/file.txt (상대경로)
touch /home/vagrant/dirA/file2.txt (절대경로)
둘다같은 경로
ls dirA : dirA속 파일 보기
ls -l dirA : dirA속 파일 자세히 보기
cp /etc/passwd : 복사
mv passwd dirA/ : 이동
rm fileA : 삭제
man 명령어 : 특정 명령어의 사용법
man ls : ls 명령어 사용법
vim passwd : 편집기 실행
h~l로 화살표처럼 이동가능
a,i,o 입력해야 편집모드
편집모드 종료는 esc
:q! 입력하면 저장하지 않고 종료
:q 변경한거 없으면 종료
:w 변경한거 저장
:wq 변경한거 저장하면서 종료
fg : 숨겨진 파일(컨트롤제트하면 파일이 최소화되듯이 숨겨짐) 띄울때
file dirA/file.txt
하면 텍스트다 비어있다 등등 정보제공
- 사용자 정보 확인 (/etc/passwd)
grep root /etc/passwd : 사용자가 누가 있는지
root:x:0:0:root:/root:/bin/bash
콜론문자 기준 6가지 정보
첫번째 필드 : 해당라인이 어떤 사용자에 대한 설명인지(사용자이름)
두번째 필드 : 사용자 패스워드 저장하던 필드. 이제 패스워드는 shadow 파일에 저장(sudo grep root /etc/shadow로 확인)
세번째 필드 : 이 사용자의 id(uid)
네번째 필드 : 이 사용자가 속한 기본 그룹의 id(gid)
grep root /etc/group 으로 확인 가능
root:x:0:(여기서도 gid는 0)
다섯번째 필드 : 보통 사용자이름과 같은 값. 그래픽 환경으로 설치되어 있는 경우 처음 부팅했을 때 로그인 화면에 출력되는 이름
여섯번째 필드 : 디렉토리 경로. 해당 사용자가 처음 접속했을 때 사용할 홈디렉토리(윈도우에서 사용자폴더)
일곱번째 필드 : 쉘 경로 sbin/nologin이라는 이름의 쉘은 로그인 할 수 없게 하는 쉘.(특수한 쉘)
uid 0번은 항상 루트
일반적인 사용자는 id가 1000번 이상의 값 할당받음
(vagrant:x:1000:1000::/home/vagrant:/bin/bash)
그 이전은 시스템계정용
- 패스워드 정책 (/etc/shadow)
sudo grep root /etc/shadow 를 입력하면 아래와 같이 나옴
root:!!$6$Vm7RUoIkLbNN5lUR$JpHUSgiFAl8od7gxwiMr0.wQ8AiCO/dRml9saOXDQCy3Cl3ci.kdOwNuf.FNk5xiD5OaeYGq7ItWLrAaZ0c95/:19446:0:99999:7:::
앞부분은 사용자 이름과 암호.
19446 : 패스워드 언제 설정했는지(날짜 형식 아니고 시스템이 인지하는 형식/ 70년 기준 며칠 지났는지)
0 : 현재설정한 패스워드를 써야하는 최소 기간(0이면 언제든 바꿀 수 있음. 기준은 설정한 날짜기준)
99999 : 패스워드를 꼭 바꿔야하는 날짜(설정한 날짜 기준 99999일 후에 바꿔야 함)
7 : 바꿔야 하는 날짜 7일전부터 사용자가 로그인 할 때 알려주겠다는 의미
뒤에 비어있는 필드 : 7일 줬는데도 안바꿨을때 유예기간 며칠 줄 지(비어있으면 유예기간 없음. 이 기간 지나면 로그인 불가)
--> 유예기간 : 계정 만료날짜
- 파일과 디렉토리의 소유와 허가권
1) 파일종류+권한
drwxr-xr-x. 2 vagrant vagrant 53 Jul 31 02:36 dirA
-rw-r--r--. 1 vagrant vagrant 0 Jul 31 02:23 fileA
d로 시작하면 디렉토리
-로 시작하면 텍스트파일
첫번째 3글자 = 이파일의 소유자 권한(처음나오는 이름[vagrant]가 소유자)
두번째 3글자 = 소유그룹에 대한 권한(두번째 나오는이름[vagrant]에 속한 사용자는 저 권한 가짐)
마지막 3글자 = 나머지 사람들 전체에 대한 권한
파일에 대해서
읽기권한 : 파일 읽을 수 있다
쓰기권한 : 파일 편집할 수 있다
실행권한 : 파일 실행할 수 있다
디렉토리에 대해서
읽기권한 : 디렉토리 안에 있는 파일들의 목록이나 정보 알 수 있다.(ls 명령어 사용 가능)
쓰기권한 : 저 디렉토리 안에 파일 만들거나 지울 수 있다.(mkdir, touch, cp,, 사용 가능)
실행권한 : 디렉토리에 접근 가능
rm newfile -> 하려면 이 파일 존재하는 디렉토리에 쓰기 권한 있어야 함
chmod, chown -> 권한 변경(루트계정으로만 가능)
chmod -> 숫자로 줄 수 있음. chmode 777하면 소유자, 그룹, 기타사용자에게 전부 모든 권한을 주겠다(읽기 4, 쓰기 2, 읽기쓰기 6..)
chown -> 소유자,소유그룹등변경가능
◎ 도커 컨테이너
1. 인프라
- 서버 + 스토리지 + 네트워크
-인프라 구성 방식
1) 온프레미스
2) 클라우드 -> 언제/어디서든 원하는 형태로 서비스를 제공
제공방식에 따라
a) IaaS : 환경만 제공 예) ec2 인스턴스
b) PaaS : 테스트 환경 원할때
c) SaaS : 업체에서 다 만들어줌 예) 구글 스프레드시트
2. 도커
- 컨테이너 가상화
어플리케이션을 일반적인 방식으로 실행하면 서로 간섭이 발생
각자 다른 시스템에서 실행하기에는 비용적/시간적 부담 증가
=> 가상화 기술 사용
그 중에서도 컨테이너 가상화를 쓰는 이유는 가상머신보다 컨테이너 가상화가 더 경량화되어 있어서
=> 배포 시간 감소, 이미지 보관시 유리함.
=> 성능상으로도 컨테이너 가상화가 더 유리
굳이 가상머신을 쓰는 경우 = 운영체제가 필요한 경우
- 도커
리눅스 컨테이너를 관리하는 도구 중 하나
기술적으로 네임스페이스/cgroup 등은 기본적으로 리눅스 자체 제공 기술
도커는 이 기술들 이용해서 체계적으로 관리할 수 있도록 도와줌
- 도커 오브젝트
이미지 | 컨테이너 실행하려면 이미지라는 정적 데이터 필요. 실행파일 + 라이브러리 + 환경설정 등을 포함한 정적인 데이터들의 묶음 |
컨테이너 | 그러한 데이터(이미지)를 실행한 상태 인스터스를 의미 |
볼륨 | 컨테이너의 데이터를 저장/공유를 원할 때 사용 |
네트워크 | 컨테이너 간의 연결 혹은 외부와의 연결을 위해 사용 |
- 이미지 관련 명령어
pull | 도커허브에서내컴으로 이미지 다운로드할대 사용 |
push | 허브에 이미지 푸시 |
ls | 이미지의 자세한 정보 확인 |
tag | 내가 가진 이미지의 이름 재설정 |
inspect imagename | list 나 정보 출력 |
rm | 삭제 |
prune [-a] | 댕글링 이미지 삭제, -a 하면 전체삭제 |
save / load | 저장 / 불러오기 |
- 컨테이너 관련 명령어
create | 컨테이너 생성 |
start | 컨테이너 실행 |
run | create + start(컨테이너 만들고 실행) |
stop-start / pause-unpause | start 할 때까지 동작 안함 / 일시정지 |
container ls(ps) | 컨테이너 확인(-a하면 중단된 것도 확인) |
inspect | 컨테이너 이름 지정해서 자세한 정보 확인 |
logs | 실행했던 내역, 이벤트 메시지 확인 가능 |
top / kill | 사용중인 프로세스 확인 / 프로세스 종료. 컨테이너 자체 종료시에도 kill 사용 |
rm | 중지/종료된 컨테이너 삭제 |
attach | 실행 중인 컨테이너에 들어가서 명령어 실행 |
exec [-it] container이름 명령어 | 실행 중인 컨테이너에 명령어 전달 |
cp ORIGINAL -FILE CONTAINER:/PATH | 컨테이너와 호스트 사이 파일 복사 |
'클라우드 스쿨 > 강의 정리' 카테고리의 다른 글
15주차 - 쿠버네티스, 특강 (0) | 2023.12.04 |
---|---|
14주차 - 쿠버네티스 (0) | 2023.12.01 |
11주차 - AWS (0) | 2023.11.29 |
10주차 - Spring Boot, AWS (0) | 2023.11.28 |
9주차 - 프로시저, 트리거, 스프링 (0) | 2023.11.27 |