가상화방식
HW - 가상화 : 운영체제 없이 가상화 장치로 설치 : 가상 머신전용으로 변환됨
HW - OS - 가상화 : 가상화머신 제작하여 설치
도커 : 컨테이너 기반의 오픈소스 가상화 플랫폼
ㄴ오픈소스 : 무료
ㄴ가상화 : 가상의 머신을 만들어서 진짜 컴퓨터 대신 하는 것
ㄴ플랫폼 : 프로그램이 동작하기 위한 환경, 환경이 돌아가게 하기위해 가장 기본적으로 깔아주는 것
☆보조기억장치(HDD, SSD)에서 프로그램 실행 > 주기억장치(RAM)에서 실행
ㄴ현재 주기억장치에서 실행되고 있는 프로그램 : 프로세스(실행)
ㄴCPU에서 실행되고 있는 프로그램 : 프로세서
앱(Application) = 응용프로그램
웹
ㄴWeb = 이미지, 글자로 이루어진 바뀌지않는(Static) 서버
ㄴWas = 선택 등을 통해 내부 프로그램이 작동하여 바뀌는(Dynamic) 웹 Application 서버
ㄴRun Time = 웹에서 작동하는 프로세스
컨테이너 : Bins/Libs와 App을 묶은 것
설치 CD/DVD > 파일.iso / 설치(install) > 가상머신 > 설치된 상태 그대로 보관 = 스냅샷(도커이미지) / 설치 > 컨테이너
도커 허브(Docker Hub) : 도커 이미지 등 다운 사이트(IP기반 6시간 100회 다운가능)
[도커 명령어] {03.컨테이너 다루기.pdf}
옵션 : - 붙은 것
인자 : 어떤 값에 대입하는 것(···=1)
docker container start / stop / remove(rm)
docker container run(실행) -d(백그라운드) --name=my-http(컨테이너 이름) httpd(이미지 이름)
docker container ls : 컨테이너 현재작업중 리스트 받기 / 도커는 ID기준 확인(무작위)
ㄴ -a : 작업 리스트 전체 받기(중지포함)
/ docker ps : 예전 약식 명령어
docker container stop(/start/rm) my-http(컨테이너 이름 or ID)
ㄴ rm 통해 컨테이너 삭제해도 이미지는 남아있음
docker images : 저장된 이미지 확인
ㄴdocker image pull nginx:1.25.0-alpine / nginx:1.25.0 : alpine / 1.25.0 웹서버 다운
ㄴ여러개의 파일로 나눠서 받음(레이어 나뉨) : 중간에 인터넷 끊기면 처음부터 다시 다운받아야하기에
ㄴalpine=용량을 확 줄여놓은 리눅스(도커용)/정말 필요한 것들만 담겨있는 이미지
ㄴnginx:웹서버
docker history nginx:1.25.0 : 1.25.0이라는 웹서버를 생성하는 데 필요한 구조 확인
ㄴ레이어로 만든이유 : 재사용하기 편하기위해(한줄 한줄이 layer)
ㄴ구조를 보기위함도 있으나 expose 즉 외부 컨테이너 통로를 보기위함도 존재
컴퓨터라는 건물 {04. 컨테이너 통신.pdf}
ㄴ서비스를 받기위해 들어갈 수 있는 문=포트(port)
ㄴ웹서버는 문을 열어놔야 클라이언트들이 입장가능 / 80 or 443 이 접속가능포트
클라이언트 접속과정 : 클라이언트>ubuntu(Host-Computer) -> docker -> Web-Server(container)
ㄴ하나의 서비스에 하나의 포트
docker run -d -p(포트설정) 8081:80 --name=webserver1 nginx:1.25.0-alpine(사용할 도커이미지) :
ㄴ호스트포트 8081에서 컨테이너 포트 80 으로 연결됨 > 8081포트로 입력시 80포트로 연결됨
ip a : 연결된 IP 확인
ㄴlo : local host ㄴenp0s3 : 가상머신의 인터넷 연결용 ip
ㄴenp0s8 : host only network / 우분투 사용
ㄴdocker0 : 게이트웨이 / 도커와 연결되어있는 게이트웨이 역할
curl localhost:8081 : 웹브라우저 작동여부 확인, 페이지 문서 소스 가져와서 보여줌
{03.컨테이너 다루기.pdf}
netstat -ant : 네트워크 접속상태 확인
ㄴnetstat명령어 자체가 net-tools 패키지 설치되야 작동
ㄴ설치법(Rocky : dnf install -y net-tools / centos : yum install -y net-tools / Ubuntu : apt install -y net-tools)
ㄴLocal=서버 / Foreign=클라이언트 / LISTEN=대기상태 / established=연결된상태
sudo netstat -nlp | grep 8081
ㄴgrep는 뒤의 문자열을 검색해주는 명령어
ㄴ -i : 대소문자 구분없이
ㄴ 문자열에 띄어쓰기 있을 시 ""사이에 입력
ㄴ | 은 앞의 결과에 뒤의 명령을 입력
ㄴ5222/docker-proxy : 5222는 프로세스 ID (도커가 관리)
ps -ef : 프로세스 확인
ㄴ | grep 5222 내용확인 시 8081 포트로 진입 시 도커가 해당 IP의 80번 포트로 연결
docker inspect webserver1 : 해당 웹서버의 상세내용 확인
ㄴdocker inspect webserver1 | grep -i "ipaddr"
ㄴ대소문자 구분없이 "문자열"을 검색
mkdir {폴더이름} : 폴더만드는 명령어
ls -l : 리스트를 상세확인
cd {폴더이름} : 해당 폴더로 들어감 / 미입력 or .. 입력 시 해당폴더 나감
rm -rf {폴더이름} : 해당 폴더 삭제
mkdir sources && cd $_
ㄴ&& : 앞의 명령어가 끝나면 뒤의 명령어 실행
vi index.html
ㄴ내용(컨테이너다루기.pdf) 복붙(마우스 우클릭) 후 ESC, :wq 입력
docker cp index.html webserver1:/usr/share/nginx/html/index.html : 해당 내용의 페이지를 컨테이너 내의 파일로 변경.
ㄴ명령어 - 원본파일 - 컨테이너 이름:디렉터리/파일이름
docker build -t myweb:1.0 . : 현재 위치(.)에서 도커파일을 가져와서 myweb이라는 이름에 1.0으로 TAG하여 도커이미지를 제작
docker run -d -p 8082:80 --name=webserver2 myweb:1.0
ㄴ추가 제작한 도커이미지로 웹서버 실행
'AWS 교육 > Docker-AWS (월)' 카테고리의 다른 글
241007_Docker Network 브릿지, namespaces, DNS서버, 지정 (0) | 2024.10.07 |
---|---|
240930_Docker 컨테이너, 네트워크 (0) | 2024.09.30 |
240925_네트워크 축약 (0) | 2024.09.25 |
240923_Docker image 기본 (0) | 2024.09.23 |
240902_Docker 원격접속 (0) | 2024.09.10 |