👩💻 자바 개발자 양성과정 73일차
- VirtualBox에 Ubuntu 설치 후 Docker 설치하기
- 리눅스 - Ubuntu 인터넷 연결 여부 확인
- VirtualBox, 리눅스 - Port Forwarding
- 리눅스 - SSH 설치
- VirtualBox - 가상머신 복사
- Xshell - 방금 만든 가상서버 접근
- 리눅스 컨테이너가 무엇인가?
- 리눅스 - 호스트 네임 변경
- 리눅스 - OS확인
- VirtualBox - RAN카드 추가
- 윈도우로 ping되게 하기
- Docker - 설치
- Docker - RUN
- Docker - 허브 살펴보기
- Docker - 컨테이너 실행
- Docker - 사설 컨테이너 다운
- Docker - 프로세스에 올라간 컨테이너 확인
- Docker - 프로세스(메모리) 초기화
- Docker - image지우기
🐋 목표
오늘은 VirtualBox에 Ubuntu를 깐 다음 Docker을 설치할 것이다!!
🐋 준비물
1. XSell
2. VirtualBox
🐋 VirtualBox에 Ubuntu를 깔자!
1. VirtualBox셋팅
2. 가상머신 만들기
가상머신을 만든다는 것은 용산 테크노 마트에 가서 컴퓨터를 맞추는 것과 같다.
기본이 10GB인데 이는 Ubuntu를 기준으로 되어있는 것이다.
네이버나 다른곳으 기본 하드디스크 용량이 다르게 측정되어 있다.
동적할당은 사용할때마다 50GB내에서 용량이 줄었다 늘었다 하는건데,
속도는 당연히 고정크기가 더 빠르다. 하지만, 눈에 띌만큼 차이가 나지는 않느다.
고정크기를 하면 초기 셋팅하는데 시간이 오래걸린다.
3. 환경설정 해주기
4. 다운받은 iso파일 설치하기
어댑터 = ram 카드
어탭터1은 현재 설치하면서 필요한 소프트웨어나 패키지를 받아야하니까 NAT로 한다.
NAT가 바깥으로 나가려면 호스트OS인 윈도우즈로부터 IP할당을 받아서 윈도우즈가 주는 IP를 가지고 외부로 나간다.
5. 서버 실행
정리하는 페이지에서 [done]
이대로 진행할거 맞니?에서 [continue]
your name은 이름/username은 id
설치하지 않을꺼면 [done]
🐋 리눅스 - Ubuntu 인터넷 연결 여부 확인
$ sudo apt update
이게 잘되면 인터넷이 되는 것
🐋 VirtualBox, 리눅스 - Port Forwarding
1. 머신에 네트워크 생성
호스트IP : 나는 이 머신 들어갈때 127.0.0.1로 들어갈꺼야
호스트 포트 : 포트는 105로 들어갈꺼야
게스트 IP : 그러면 10.0.2.105로 포트 포워딩을 해줄꺼야 (가상 머신의 포트 번호)
게스트 포트 : 포워딩해주는 포트는 22번이야
왜 이렇게 하느냐? Ubuntu서버는 브라우저가 없다.
거기에 도커로 웹서버를 깔아도 볼 방법이 없다.
윈도우 10에 있는 브라우저로 연결하고 싶다.
근데 문제는 브라우저는 22번 포트를 못쓰네?
그래서 이 갭을 해결하기 위해 '포트 포워딩'을 사용한다.
인터넷도 쓰고, 호스트에서 연결도 되는 두마리 토끼를 잡을 수 있다.
2. 만들어둔 서버에 새롭게 만든 네트워크 연결
3. 네트워크 매니저 설치
$ sudo apt install network-manager
네트워크 매니저를 깔아야 수동ip를 셋팅할 수 있다.
4. 네트워크 매니저 가동여부 확인
$ sudo systemctl status network-magnger
빠져나오는 방법 q
5. 나의 ip확인하기
$ ip a
아직 내ip에 고정ip설정을 하지 않았기 때문에, 10.0.2.15가 ip로 설정되어있음을 확인할 수 있다.
아까 네트워크르 생성할때 게스트ip는 10.0.2.105로 설정했다.
그래서 10.0.2.105로 바꿔주어야 할 것이다.
6. 고정 ip 설정하기
// 이동하자
$ cd /etc/netplan
//나 지금 어딨어?
$ pwd
//뭐가 있어?
$ ls
//복사하자
$ sudo cp 복사할파일명 새롭게복사된는파일명
//파일 열어보자
$ sudo nano 파일명
DHCP(Dynamic Host Configuration Protocol)
ip설정을 해주기위한 서버를 쓸꺼야
dhcp4: no = 고정ip를 쓸꺼야
adresses
지정할 ip를 적어준다.
gateway4
바깥으로 나가기위한 게이트웨이
네트워킹을 하기위해서는 3가지가 필요하다.
첫째, 나의 IP => 10.0.2.105
둘째, 서브넷 마스크 => 24
셋째, 게이트 웨이
7. 문법검사를 해보자
내가 입력한 파일의 문법을 검사한다.
$ sudo netplan try
문제가 있으면 있다고 뜨고 없으면 시간초가 지나감
8. 고정ip적용
$ sudo netplan apply
9. 고정ip확인
몇번 껏다 킨다음 ip a를 해서 본인의ip를 확인하자
🐋 리눅스 - SSH 설치
ssh이 작동하면 puTTY나 XSHELL로 접근이 가능하다.
1. ssh서버 준비함
//관리자로 접근해서 설치할거야. openssh-server, curl, tree 이렇게 세개를.
$ sudo apt install openssh-server curl tree
2. ssh가 잘 잘 작동 되는 지 확인하기
$ sudo systemctl statuts ssh
작업하다가 문제가 발생하면 안되니까 이 가상머신 자체를 복사하기 위해서 셧다운을 해준다.
3. 셧다운
// 관리자의 권한으로 지금 셧다운 할거야
$ sudo shutdown now
🐋 VirtualBox - 가상머신 복사
복사가 가능한 이유는 파일이니까!
완전한 복사 = 값 복사 // 연결된 복제 = 주소 복사
🐋 Xshell - 방금 만든 가상서버 접근
포트 포워딩할때 설정했던 호스트와 포트번호로 세션정보를 등록한다.
여기 안되서 선생님께 여쭤봄
🐋 리눅스 컨테이너가 무엇인가?
os레벨 가상화를 지원하기 위한 프레임 워크
🐋 리눅스 - 호스트 네임 변경
// 호스트 네임 "간략하게" 확인하기
$ hostname
// 호스트 네임 "자세하게" 확인하기
$ hostnamectl
// 호스트 네임 변경하기 1번
$ sudo hostnamectl set-hostname 변경할이름
// 호스트 네임 변경하기 2번
$ sudo nano /etc/hosts
🐋 리눅스 - OS확인
$ cat /etc/os-release
🐋 VirtualBox - RAN카드 추가
1개는 인터넷 전용
1개는 호스트OS에 윈도우즈10하고 연결할 것임
현재 상태에서 윈도우즈에서 접근이 안된다. 왜냐하면, 내 윈도우의 ip가 10점대가 아니기 때문임.
cmd에서 ipconfig로 확인해보면 아래와 같다.
virtualbox에서 ran을 추가할때는 전원이 꺼져있어야 가능하다.
호스트 전용 어댑터 = 호스트OS와만 연결하겠다.
여기서말하는 호스트 OS란?
윈도우 CMD에서 ipconfig를 했을때, 이더넷 어댑터 virtualbox host-only network의 ipv4주소다.
* 리눅스는 ping이 되는데, 윈도우는 ping을 막아둠
🐋 윈도우로 ping되게 하기 -- 확인중... id windowPing
🐋 Docker 설치하기
1. 레파지토리 셋팅하기
$ sudo apt-get update
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
2. 설치 완료 확인하기
$ sudo systemctl status docker
🐋 Docker - RUN해보기
run : 허브에서 찾고, 다운받고, 런까지 하는 것
$ sudo docker run hello-world[아무것도 안 적으면 최신버전]
🐋 Docker - 허브 살펴보기
허브에서는 아무거나 다운받지말고, offical image를 받는게 안전하다.
🐋 Docker - 컨테이너 실행하기
// nginx를
// (-d) 백그라운드에서 돌려줘
// (-p) 포트 지정할거야
// 내가 컨테이너에 접근하기 위한 포트 8080, 컨테이너 내부가 받는 포트 8080
// (--name) nx라는 이름으로 실행시켜줘
$ sudo docker run -d -p 80:80 --name nx nginx
//ip 확인해보기
$ curl 127.0.0.1:80
🐋 Docker - 사설 컨테이너 다운받기
https://hub.docker.com/r/consol/tomcat-8.0
이걸 다운받아 보자
사설 컨테이너는 ~~/~~ 슬레이트가 들어간다.
$ sudo docker run -d -p 080:8080 --name tc consol/tocat-8.0
설치가 된 다음 8080포트로 접속하면 설치된 톰캣페이지가 보인다.
🐋 Docker - 프로세스에 올라간 컨테이너 확인
// (-a) 다 보여줘
$ sudo docker ps -a
🐋 Docker - 프로세스(메모리) 초기화
// tc라는 이름의 컨테이너 지워줘
$ sudo docker rm -f tc
만약 이름이 없으면 컨테이너 앞 3글자만 적어주면 됨
메모리에서 내린것임
화물선에 있던 컨테이너를 부두로 내린것과 같음
그래서, 부두에는 프로세서(메모리)에서 썼던 컨테이너들이 쌓여있을 것임. 그것이 imgae
🐋 Docker - image지우기
$ sudo docker rmi [container id]