<aside> 💡 DOCKER 환경구축
CMOS : 가상환경만들 때 사용
-네트워크
NAT: 인터넷만 접속
NAT 네트워크 : 인터넷 접속 + 다른 VM과 통신, 포트포워딩 등..
내부 네트워크 : 컴퓨터 내에만 통신
호스트 전용 어댑터 : 호스트 컴퓨터의 랜카드를 그대로 사용 (≒DMZ)
VirtualBox ~ ADapter #2 ⇒ IP주소마다
-방화벽 [Firewall] (밖 → 안)
역할 : 네트워크 “전체”를 막음
특정 IP주소, 특정 PORT 번호를 이용하여 제한 [블랙리스트방법]
컴퓨터 내장 → 윈도우**(방화벽이 자동으로 열림), 리눅스(따로 켜야함 [좀 더 안전])**
-Proxy [Forward Proxy] (안 → 밖)
Application, user, 시간 등..을 이용하여 막음 ※IP가 다르면 다른 서버로 보낼 수 있음
웹캐싱(Web Caching[임시기억]) 지원 ⇒ 인터넷 성능이 좋아짐
Linux : 리눅스 (무료, 공개o)
BSD : 유닉스(Unix) (무료, 공개x)
<aside> 💡 Docker 이론
서버 확장에 비용적으로나 여러가지 환경적 요소들이 어려워서 Docker를 사용
기능
성능
3) 안정
Virtualization 기술을 사용하면 효율적으로 자원을 이용하여 서비스할 수 있다.
단점:
물리적인 서버에 비하여 성능이 떨어짐.
Host Machine 고장으로 인해 피해를 줄이기 위해 Clustering 기술이 필요, 새로운 저장소가 필요해 비용증대
Clustering : Host Machine이 고장났을 때 서브용
Container 기술
VM에 비해 자원을 덜 쓰고 Linux Kernel 공유하기 때문에 Scale-in, Scale-out 성능이 최고
Application간 충돌방지
VM vs Docker
<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 → 파일 → 환경설정 → 네트워크 → 포트포워딩 설정 필수
**# 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>