<aside> 💡 DOCKER 환경구축

CMOS : 가상환경만들 때 사용

-네트워크

NAT: 인터넷만 접속

NAT 네트워크 : 인터넷 접속 + 다른 VM과 통신, 포트포워딩 등..

내부 네트워크 : 컴퓨터 내에만 통신

호스트 전용 어댑터 : 호스트 컴퓨터의 랜카드를 그대로 사용 (≒DMZ)

VirtualBox ~ ADapter #2 ⇒ IP주소마다

-방화벽 [Firewall] (밖 → 안)

역할 : 네트워크 “전체”를 막음

특정 IP주소, 특정 PORT 번호를 이용하여 제한 [블랙리스트방법]

컴퓨터 내장 → 윈도우**(방화벽이 자동으로 열림), 리눅스(따로 켜야함 [좀 더 안전])**

Untitled

-Proxy [Forward Proxy] (안 → 밖)

Application, user, 시간 등..을 이용하여 막음 ※IP가 다르면 다른 서버로 보낼 수 있음

웹캐싱(Web Caching[임시기억]) 지원 ⇒ 인터넷 성능이 좋아짐

Linux : 리눅스 (무료, 공개o)

BSD : 유닉스(Unix) (무료, 공개x)

<aside> 💡 Docker 이론

서버 확장에 비용적으로나 여러가지 환경적 요소들이 어려워서 Docker를 사용

  1. 기능

  2. 성능

3) 안정

  1. 보안

Virtualization 기술을 사용하면 효율적으로 자원을 이용하여 서비스할 수 있다.

단점:

물리적인 서버에 비하여 성능이 떨어짐.

Host Machine 고장으로 인해 피해를 줄이기 위해 Clustering 기술이 필요, 새로운 저장소가 필요해 비용증대

Clustering : Host Machine이 고장났을 때 서브용

Container 기술

VM에 비해 자원을 덜 쓰고 Linux Kernel 공유하기 때문에 Scale-in, Scale-out 성능이 최고

Application간 충돌방지

Untitled

VM vs Docker

ED1828B4-ACEE-402E-93D3-F6A7E9A05580.jpeg

<aside> 💡 Docker 실습

**#Docker 실행**
docker run --name [이름] -itd [OS]

# 만든 Docker container로 이동
docker exec -it [이름] /bin/bash

# Ubuntu 사용시 필수로 해줘야할 것
apt update 

cat /etc/*-release : 릴리즈 버전확인

uname -r : 커널 버전확인

apt install iputils-ping : ping tool 다운

**# CentOS 사용하기**

# c1이라는 이름의 centos container 생성
docker run --name c1 -itd centos

# c1 container로 이동 
docker exec -it c1 /bin/bash

exit (나가기)

포트 번호가 동일한 두 서비스 동시 실행

★ vm → 파일 → 환경설정 → 네트워크 → 포트포워딩 설정 필수

화면 캡처 2022-07-07 172823.png

**# nginx 실행하기**
// -d : 백그라운드 실행 -p [host포트]:[nginx포트] 
****docker run --name [이름] -d nginx
docker run --name [이름] -d -p 80:80 nginx

# nginx container로 이동
docker exec -it [이름] /bin/bash

**# apache(httpd) web server 실행하기**
docker run --name [이름] -d httpd
docker run --name [이름] -d -p 8080:80 httpd

**# apache(httpd) container로 이동**
docker exec -it [이름] /bin/bash

curl localhost:80 → 로컬호스트 확인 # curl 172.17.0.2 결과: nginx

                                                           curl 172.17.0.3   결과: httpd.

docker exec mynginx hostname -i : mynginx ip확인

apt update

Game 실행하기

# supermario 80포트에서 실행
docker run --name supermariocon -d -p 80:8080 pengbai/dockersupermario

Web Browser에 192.168.56.1:80 (master주소 + :포트번호)로 실행시켜보기

관리 프로그램 실행하기

★ 포트 9000으로 포트포워딩

# Server 관리하는 portainer 실행
curl <http://down.cloudshell.kr/docker/portainer.sh> | bash

web Browser에 192.168.56.1:9000 (master주소 + :9000) 으로 실행시키기

-메뉴접근

containers → +Add conatiner → Name, Image, +publish a new network ~ [80 → 80] 설정

_ 표시 >> connect >> 컨테이너 접근가능

</aside>