728x90

개요

이번에 스나이퍼 팩토리에서 주관하는 Flutter 앱 개발 과정 교육에 참여하게 되어서 Flutter 환경을 제 맥북 M1에 세팅하려고 한다.

Flutter 환경을 구성하려면 아래와 같은 6가지의 설치 과정이 필요하다.

  1. Android Studio
  2. Xcode
  3. Chrome
  4. Flutter SDK
  5. VSCode
  6. VSCode Extension - Flutter

1. Android Studio 설치 과정

https://developer.android.com/studio에 접속한다.

녹색 표시의 다운로드 버튼을 누른다.

 

녹색 버튼을 누르게 되면 위와 같은 창이 나온다. 저는 Mac의 Apple chip M1 이므로 흰 바탕의 버튼을 눌러서 설치를 진행했다.

다운로드한 위치에 android-studio-2021.3.1.16-mac_arm.dmg 파일이 생성되는데 이 파일을 실행시켜준다. 설치 중에 나오는 체크사항은 모두 디폴드로 진행한다.

 

2. Xcode 설치 과정

 

Xcode는 App Store에서 설치를 진행하면 된다.

 

App store에 접속해서 검색창에 xcode를 검색하면 Apple Developer와 Xcode가 나오는데 Xcode만 설치를 진행한다.

 

3. Chrome 설치

Chrome은 다들 설치되어있을 것이라 생각하고 생략하겠습니다.

 

4. Flutter SDK를 설치한다.

https://docs.flutter.dev/get-started/install/macos 이 링크에 접속한다.

링크에 접속하면 위와 같은 화면이 나오는데 Apple Slilcon인 flutter_macos_arm64_3.3.4-stable.zip을 설치한다.

설치가 완료되면 압축을 해제해줍니다.

터미널에 접속해서 Flutter SDK 압축 풀어준 경로로 접속합니다.

 

export PATH="$PATH:`pwd`/flutter/bin"

위의 환경 변수를 추가해줍니다.

 

터미널에서 zshrc 파일을 열고

open ~/.zshrc

 

Path 추가하는 라인을 복붙 해주고 파일을 저장한다. 경로를 잘 확인합시다.

export PATH=$PATH:~/Downloads/flutter/bin

 

그리고 터미널에서 source 명령어를 입력해서 zshrc파일을 재실행한다.

source ~/.zshrc

 

플러터 명령어가 잘 실행되는지 확인하기 위해 아래의 코드를 터미널에 입력해 봅니다.

flutter --version

 

출력 내용

Flutter 3.3.4 • channel stable • <https://github.com/flutter/flutter.git>
Framework • revision eb6d86ee27 (8일 전) • 2022-10-04 22:31:45 -0700
Engine • revision c08d7d5efc
Tools • Dart 2.18.2 • DevTools 2.15.0

 

5. VSCode 설치

https://code.visualstudio.com/ 이 링크에 접속해서 VSCode를 설치합니다.

VSCode를 실행시켜줍니다.

 

6. VSCode Extension - Flutter 설치

VSCode를 실행시킨 화면에서 왼쪽 하단에 있는 사각형 4개 있는 아이콘을 클릭합니다.

 

검색창에 flutter를 검색해서 다운로드하여줍니다.

 

7. Flutter가 잘 설치되어있는지 점검을 해주는 Run Flutter Doctor를 실행한다.

Shift+Command+P 단축키로 Pallete를 실행하고 Flutter: Run Flutter Doctor를 실행한다.

 

만약 SDK 경로를 못 찾는다고 나오면 경로 찾아서 Set 해주면 된다. 경로는 Flutter SDK 압축 해제한 폴더에서 flutter/bin 까지 추가해준다.

output 영역에 실행 결과가 나오는데 2개의 카테고리에 문제가 있다고 나올 것이다 현재 저는 오류를 수정해서 오류 화면이 나오지 않습니다.

 

8. Android SDK command-line Tools를 설치해야 한다.

일단 Android Studio를 실행하고 상단에 Preferences 메뉴를 선택한다.

 

9. 왼쪽의 Android SDK 메뉴의 중간에 있는 SDK Tools 메뉴에서 Android SDK command-line Tools를 체크하고 Apply 하면 된다.

 

10. flutter doctor --android-licenses를 터미널에서 실행한다.

y / n이 나오면 y를 입력해준다.

 

11. 이제 Xcode 이슈를 해결한다.

아래의 명령어를 터미널에서 실행시켜 cocoapods를 설치한다.

sudo gem install cocoapods -n /usr/local/bin

 

pod도 설치한다.

pod setup

 

아래의 코드를 실행시킨다.

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch

 

12. 최종 확인

다시 flutter doctor를 실행해서 issues가 없음을 확인한다.

 

728x90

'개발 > Flutter' 카테고리의 다른 글

Flutter 다섯 번째 강의 내용  (0) 2022.10.27
Flutter 네 번째 강의 내용  (0) 2022.10.24
Flutter 세 번째 강의 내용  (0) 2022.10.21
Flutter 두 번째 강의 내용  (0) 2022.10.20
Flutter 첫 번째 강의 내용  (0) 2022.10.18
728x90

유튜브 무료 강의인 따배도가 마지막 강의입니다. 무료 강의이지만 퀄리티가 무료 강의를 넘어서는 강의이고 도커가 처음이신 분 도커에 대해 공부하고 싶은 분, 취준생분들 모두 추천합니다.

https://www.youtube.com/watch?v=NLUugLQ8unM&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi&index=1 

토커 컴포즈란?

여러 컨테이너를 일괄적으로 적용하고 실행할 수 있는 툴

  • 하나의 서비스를 운영하기 위해서는 여러개의 애플리케이션이 동작해야 한다.
  • 컨테이너화 된 애플리케이션들을 통합 관리할 수 있다.

docker-compose 기본 명령어

docker-compose 기본 명령어

version : compose 버전 버전에 따라 지원 문법이 다름
service : 컴포즈를 이용해서 실행할 컨테이너 옵션 정의
build : 컨테이너 빌드
image : compose를 통해 실행할 이미지를 지정
command : 컨테이너에서 실행 될 명령어 지정
port : 컨테이너가 공개하는 포트 나열
link : 다른 컨테이너와 연계할 때 연계할 컨테이너 지정
expose : 포트를 링크로 연계된 컨테이너에만 공개할 포트
volumes : 컨테이너에 볼륨을 마운트
environment : 컨테이너에 적용할 환경변수를 정의
restart : 컨테이너가 종료 될 때 적용할 restart 정책
	no : 재시작 되지 않음
	always : 컨테이너를 수동으로 끄기 전까지 항상 재시작
	on-failure : 오류가 있을시에 재시작
depends_on : 컨테이너 간의 종속성을 정의 정의한 컨테이너가 먼저 동작되야함

docker-compose로 동작시키는 웹서버

1단계 : 도커 컨테이너가 사용할 서비스 디렉터리부터 만들어줘야 한다.

  • mkdir webserver
  • cd webserver

2단계 : docker-compose.yml 생성

3단계 : docker-compose 명령어

  • docker-compose up -d
  • docker-compose ps
  • docker-compose scale mysql=2
  • docker-compose ps
  • docker-compose down

docker-compose 명령어

도커 컴포즈 명령어

up : 컨테이너 생성/시작
ps : 컨테이너 목록 표시
logs : 컨테이너 로그 출력
run : 컨테이너 실행
start : 컨테이너 시작
stop : 컨테이너 정지
restart : 컨테이너 재시작
pause : 컨테이너 일시정지
unpause : 컨테이너 재개
port : 공개포트번호 표시
config : 구성확인
kill : 실행중인 컨테이너 강제 정지
rm : 컨테이너 삭제
down : 리소스 삭제

ex) docker-compose scale 서비스 이름 = 개수
docker-compose run 서비스 이름 실행 명령어
docker-compose logs 서비스 이름
docker-compose up -d
docker-compose ps
docker-compose scale mysql=2
docker-compose ps
docker-compose down
docker-compose down - -volumes 볼륨까지 지워진다.

빌드와 운영

1단계 : 도커 컨테이너가 사용할 서비스 디렉터리부터 만들어줘야 한다.

  • mkdir webserver
  • cd webserver

2단계 : 빌드를 위한 dockerfile 생성

3단계 : docker-compose.yml 생성

4단계 : docker-compose 명령어

  • docker-compose up -d
  • docker-compose ps
  • docker-compose scale mysql=2
  • docker-compose ps
  • docker-compose down
728x90
728x90

Docker 컨테이너가 사용하는 스토리지

1. 도커의 레이어 기술

도커의 컨테이너 이미지는 ReadOnly 상태입니다. 컨테이너에 추가되는 데이터들은 별도의 ReadWrite레이어에 저장됩니다. 도커 컨테이너를 실행시키면 ReadOnly와 ReadWrite를 만들어서 같이 실행되어 하나의 프로세스가 되어서 동작을 합니다. 어떻게 ReadOnly와 ReadWrite가 하나인 것처럼 보일까요? 이것은 도커가 가지고 있는 레이어의 기술입니다. 이 레이어 기술을 유니온 파일 시스템 또는 overlay라고 합니다. 기존에 가지고 있던 ReadOnly 레이어에서 ReadWrite 레이어에 변경사항이 마치 하나인 것처럼 보여주는 것입니다. 도커에서는 컨테이너를 실수로 삭제하면 그 안에 있던 데이터가 다 날아갑니다. 이를 보안하기 위해 -v volume 명령어를 사용합니다.

 

2. volume 명령어

volume 옵션
-v <host path>:<container mount path>

-v <host path>:<container mount path>:<read writer mode>

-v <container mount path>

$ docker run -d --name db -v /data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:latest
데이터를 실제 호스트에 기록되게 볼륨 마운트하면 보안 이슈가 있다. 
해커가 파일을 저장하게되면 호스트에도 저장된다.

$ docker run -d --name db -v /data:/var/www/html:ro httpd
위의 보안 문제를 해결하기 위해 둘째 라인처럼 ro :readonly을 써준다.

$ docker run -d --name db -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:latest
-v 뒤에 호스트 주소가 없으면 data 디렉토리 처럼 uuid로 된 디렉토리를 만들고 
그 밑에 data디렉토리를 만들어서 거기에 저장된다.

 

3. 컨테이너끼리 데이터 공유하기

컨테이너와 컨테이너끼리 데이터 마운트로 데이터 공유가 가능합니다.

이를 이용하면 리눅스 컨테이너가 /webdata와 마운트 되어있고 index.html을 만들었고 nginx 컨테이너가 같은 폴더를 마운트하고 있으면 유저에게 index.html을 보여줄 수 있습니다. 또한 리눅스에서 index.html 파일을 변경하여도 적용됩니다.

 

4. volume 실습

docker exec -it db /bin/bash

위에 명령어는 도커에서 mysql에 접속하는 명령어입니다.

 

성공적으로 mysql에 접속한 것을 확인하실 수 있습니다. hs 라는 이름으로 database를 만들었습니다.

 

동작중인 컨테이너를 삭제하여도 호스트의 dbdata 디렉터리에는 hs 가 남아있는 것을 확인하실 수 있습니다.

 

-v 옵션에 host 디렉토리의 이름을 지정해주지 않았습니다.

 

docker inspect 명령어로 host 디렉토리의 이름을 지정하지 않으면 어느 디렉터리로 Mount 되는지 확인하였습니다.

host 디렉토리를 지정하지 않으면 /var/lib/docker/volumes/에 uuid로 디렉터리가 만들어지고 그 밑에 _data라는 디렉터리가 만들어진 것을 확인하실 수 있습니다.

728x90
728x90

컨테이너 리소스 제한 명령어

docker command 를 통해 제한할 수 있는 리소스는 

  1. CPU
  2. Memory
  3. Disk I/O 가 있다.

1.  Memory 리소스 제한

Memory 리소스 제한
  제한 단위는 b, k, m, g로 할당
--memory, -m : 컨테이너가 사용할 최대 메모리 양을 지정

--memory-swap : 컨테이너가 사용할 스왑 메모리 영역에 대한 설정

--memory-reservation : --memory 값보다 적은 값으로 구성하는 소프트 제한 값 설정

--oom-kill-disable : OOM Killer가 프로세스 kill 하지 못하도록 보호

$ docker run -d -m 512m nginx

$ docker run -d -m 1g --memory-reservation 500m nginx
: --memory-reservation 1g 메모리를 지정하는데 최소 500메가까지 보장 받는다.

$ docker run -d -m 200m --memory-swap 300m nginx
: swap은 메모리가 200m swap이 300m일 때 swap은 300 - 200으로 swap의 용량은 100m이다.

$ docker run -d -m 200m --oom-kill-disable nginx
: oom-kill 실제 피지컬 메모리가 부족해도 nginx는 죽이지 마라

리눅스에서 부하테스트를 하기위해 dockerfile을 작성했다.

 

dockerfile을 build하는 모습이다.

 

부하 테스트를 진행하는 사진입니다.

메모리를 100m를 설정을하고 swap도 100m로 설정을해서 실제로 swap에는 메모리가 없습니다.

5초동안 90m 부하를 일으키는 테스트를 진행했습니다..

정상적으로 실행 되고 있습니다.

 

5초동안 150m를 진행하였는데 실패하는 화면입니다. 

 


2. CPU 리소스 제한

CPU 리소스 제한
--cpus : 컨테이너에 할당할 CPU core 수를 지정

--cpuset-cpus : 컨테이너가 사용할 수 있는 CPU나 코어를 할당. cpu index는 0부터

--cpu-share : 컨테이너가 사용하는 CPU 비중을 1024값을 기반으로 설정



$ docker run -d --cpus=".5" ubuntu
: .5는 예를 들어 cpu 4개중에 1개를 절반까지 쓸수 있다.

$ docker run -d --cpu-shares 2048 ubuntu
: 디폴트는 1024인데 2048로 설정하면 다른 cpu보다 더 많은 리소스를 할당한다.

$ docker run -d --cpuset-cpus 0-3 ubuntu

3. Block I/O 제한

Block I/O 제한
--blkio-weight : Block IO의 Quota를 설정할 수 있으며 100 ~ 1000까지 선택 default 500
--blkio-weight-device : weight-device는 weight값을 한 device에만 적용시킨다.

--device-read-bps : 특정 디바이스에 대한 읽기와 쓰기 작업의 초당 제한을 kb, mb, gb단위로 설정
--device-write-bps 

--device-read-iops : 컨테이너의 read/write 속도의 쿼터를 설정한다. 초당 quota를 제한해서 I/O를 발생시킴
--device-write-iops :  0이상의 정수로 표기 초당 데이터 전송량 = IOPS * 블럭크기

4. 모니터링

docker stat m4

실행중인 컨테이너의 런타임 통계를 확인하는 명령어이다.

docker events -f container=name
docker image -f container=name

도커 호스트의 실시간 event 정보를 수집해서 출력하는 명령어이다.


cAdvisor이라는 모니터링툴이 있는데 제 맥북 환경에서 실행이 안되어서 모니터링을 못했습니다.

https://github.com/google/cadvisor

728x90
728x90

따라 하며 배우는 도커 유튜브 영상을 보고 학습한 내용을 블로그에 정리하려고 합니다.

 

1. 도커 기본 명령어

docker

docker를 설치하셔서 docker를 치면 docker에 관련된 명령어들이 나온다.

 

docker search nginx

[nginx]의 이미지가 있는지 도커에서 확인하는 명령어

 

docker images

docker에서 다운로드하였던 이미지들 목록이 나온다.

 

docker pull centos

[name]의 이미지를 다운받을 때 사용하는 명령어

 

docker run centos

위에 명령어를 실행하면 실행되지 않습니다. 

 

docker run -i -t centos

실행시키기 위해서는 태그를 붙여줘야합니다.

-i 옵션과 -t 옵션은 같이 쓰는 경우가 흔하다.

컨테이너를 종료하지 않은 채 터미널에서 입력을 계속해서 컨테이너로 전달하기 위해 이 두 옵션을 사용합니다.

-it 옵션은 컨테이너의 쉘(shell)이나 CLI 도구로 사용할 때 유용하게 사용된다.

 

docker run --name web -d -p 80:80 nginx

--name 옵션을 사용해서 컨테이너에 이름을 만들고 해당 이름으로 컨테이너를 식별할 수 있다.

-d 옵션을 사용하면 컨테이너가 detached 모드에서 실행된다. 컨테이너를 백그라운드에서 실행하고 싶을 때 쓰는 명령어이다.

-p 옵션은 호스트와 컨테이너 간의 포트(Port) 배포(publish)/바인드(bind)를 위해 사용된다.

호스트(host) 컴퓨터에서 컨테이너에서 리스닝하고 있는 포트로 접속할 수 있도록 설정해준다.

 

2. 도커 파일을 만들고 도커 허브에 배포까지

 

도커 파일이란 도커 이미지를 만들기 위한 설정 파일입니다. 여러 가지 명령어를 사용하여 도커 파일을 작성하면 설정된 내용대로 도커 이미지를 만들 수 있습니다.

 

2-1. 도커 파일의 기본 문법

#
comment를 남길때 사용한다.

FROM
컨테이너의 베이스이미지(운영환경), 기반이 되는 이미지 레이어입니다.

MAINTAINER
이미지를 생성한 사람의 이름 및 정보

LABEL
컨테이너 이미지에 컨테이너의 정보를 저장

RUN
도커이미지가 생성되기 전에 수행할 쉘 명령어

COPY
컨테이너 빌드시 호스트의 파일을 컨테이너로 복사

ADD
컨테이너 빌드시 호스트의 파일을(tar, url포함) 컨테이너로 복사

WORKDIR
컨테이너 빌드시 명령이 실행될 작업 디렉토리 설정

ENV
환경변수 설정

USER
명령 및 컨테이너 실행시 적용할 유저 설정

VOLUME
파일 또는 디렉토리를 컨테이너의 디렉토리로 마운트
디렉터리의 내용을 컨테이너에 저장하지 않고 호스트에 저장하도록 설정합니다. 
데이터 볼륨을 호스트의 특정 디렉터리와 연결하려면 docker run 명령에서 -v 옵션을 사용해야 합니다. 
ex) -v /root/data:/data

EXPOSE
컨테이너 동작 시 외부에서 사용할 포트 지정

CMD
컨테이너 동작 시 자동으로 실행할 서비스나 스크립트 지정

ENTRYPOINT
CMD와 함께 사용하면서 command 지정 시 사용

 

2-2. 도커파일 만들고 배포까지

 

hellojs라는 폴더를 만들고 그 폴더 안에 들어가서 dockerfile을 만들려고 한다.

dockerfile을 만들고 위에 내용을 입력한다.

그리고 hello.js라는 파일을 만든다. 

 

hello.js라는 파일은 node.js파일이며 컨테이너의 os.hostname을 확인하는 파일입니다.

 

docker build -t hellojs .

dockerfile을 이미지로 만들기 위해 docker build 작업을 해야 된다.

마지막. 은 호스트의 작업 디렉터리 경로 → 컨테이너 이미지가 만들어진 것

 

빌드가 진행 중인 화면입니다.

다음으로 webserver라는 폴더를 만들고 그 폴더에 도커 파일을 만듭니다.

 

도커 파일은 우분트로 되어있으며 도커가 실행될 때 아파치를 설치하고

아파치를 설치하면 /var/www/html/index.html을 찾아서 클라이언트에게 서비스해주게 된다.

따라서 /var/www/html/index.html에 TEST WEB이라는 이름의 파일을 저장시켰다.

이 컨테이너가 서비스해주는 포트를 알려주는 EXPOSE에 80번으로 설정했다.

CMD에는 아파치를 설치하고 나면 그 컨테이너 안에는 /usr/sbin/apache2ctl이라는 바이너리가 생긴다.

아파치 웹서버를 동작시켜주는 데몬이 생긴다. 아파치를 실행할 때는 -DFOREGROUND라는 옵션을 써줘야 된다.

 

docker build 명령어로 webserver를 build 중인 화면이다.

 

webserver와 hellojs가 정상적으로 이미지로 만들어진 것을 확인하실 수 있습니다. 

 

webserver의 컨테이너를 실행하는 화면입니다. 정상적으로 실행되었습니다.

 

curl로 localhost:80을 하면 잘 동작하는 것을 확인하실 수 있습니다.

 

docker rm -f web web

실행 중인 컨테이너를 지울 때는 -f라는 옵션을 붙여줘야 한다.

 

docker run 명령어로 hellojs라는 컨테이너를 실행시켰습니다.

정상 작동되는 것을 확인하실 수 있습니다.

 

 

 

docker login

도커를 내 Repository에 올리기 위해서 로그인을 진행해야 합니다.

유저 이름과 패스워드를 입력합니다.

 

docker tag webserver:v1 lusida/webserver:v1

컨테이너를 내 Repository에 올리려면 내 이름의 태그가 붙어있어야 한다.

따라서 내 이름의 태그를 붙여주기 위해 이름을 변경하는 명령어이다.

 

도커 허브에 접속하셔서 로그인 후 도커 허브 홈페이지 상단에 Repositories을 클릭해 줍니다.

 

현재 내 Repository에는 비어 있는 것을 확인하실 수 있습니다.

 

docker push lusida/webserver:v1

내 컨테이너를 Repository에 올리기 위한 명령어입니다.

하지만 오류가 난 것을 확인하실 수 있는데 제 네임을 잘못 설정을 해서 denied 오류가 발생하는 것이었습니다.

이름을 잘 확인합시다.

 

정상적으로 push 명령어가 실행되었습니다.

 

제 Repository에서도 webserver라는 Repository가 올라간 것을 확인하실 수 있습니다.

728x90
728x90

1. UTM 설치

맥북 M1에서 VM(Virtual Machine)인 UTM에서 Ubuntu 설치를 진행해 보려고 합니다.

밑에 주소에서 다운로드할 수 있습니다.

UTM 다운로드 사이트 https://mac.getutm.app

 

UTM

Securely run operating systems on your Mac

mac.getutm.app

사이트에 접속하신 후 Download를 진행하시면 됩니다.

 

맥북 런치패드에 보시면 UTM이 잘 설치된 것을 확인하실 수 있습니다.

 

2. Ubuntu 설치

이제 밑에 사이트는 우분투를 설치하는 사이트입니다. 사이트에 들어가서 우분투를 다운로드합니다.

우분투 https://ubuntu.com/download/server/arm

 

Ubuntu for ARM | Download | Ubuntu

Download Ubuntu Server for ARM with support for the very latest ARM-based server systems powered by certified 64-bit processors.

ubuntu.com

Download Ubuntu 22.04 LTS를 다운로드합니다. 이제 다운로드는 다 끝났습니다.

이전에 다운로드했던 UTM을 실행시켜 줍니다.

 

UTM을 실행시키면 위와 같은 화면이 실행됩니다.

왼쪽에는 VM을 보여주는 공간입니다. 아직 VM을 만든 것이 없기 때문에 왼쪽 공간은 비어있습니다.

이제 새 가상머신 만들기 버튼을 클릭합니다.

 

Virtualize 버튼을 클릭해 줍니다.

 

저희는 Linux를 설치를 해야 되므로 Linux를 클릭해 줍니다.

 

리눅스를 클릭하면 위와 같은 창이 나오는데 Use Apple Virtualization을 체크하지 않고

Boot ISO Image에 있는 탐색 버튼을 클릭합니다. 

 

위에서 다운로드했던 Ubuntu 설치 파일을 클릭합니다. 

 

메모리를 설정합니다.

Ubuntu Server는 메모리 사용량이 크지 않으므로 저는 2GB와 CPU Core 2개를 설정했습니다.

 

저장소를 설정하는 화면입니다.

저장소의 크기는 20GB로 설정하였습니다.

 

공유 폴더를 선택하는 화면입니다.

저는 따로 공유 폴더를 만들지 않아 Continue 버튼을 눌렀습니다.

 

VM의 이름을 설정해 줍니다.

저는 docker-ubuntu라는 이름으로 설정하였습니다.

 

VM에서의 설정은 완료하였습니다.

이제 VM에 우분투를 설치하기 위해 재생 버튼을 클릭합니다.

 

재생 버튼을 눌렀을 때 나오는 화면입니다.

Try or Install Ubuntu Server에 엔터를 눌러줍니다.

 

한국어는 따로 없어서 English를 선택합니다.

 

업데이트를 진행하지 않고 실행하였습니다.

Continue without updating에서 엔터를 누릅니다.

 

English로 설정되어 있습니다.

한국어는 없으니 Done에서 엔터를 눌러줍니다.

 

Ubuntu Server를 선택하고 Done에서 엔터를 누릅니다.

 

네트워크 연결을 진행하는 화면입니다. 할당된 IP 주소와 맥 주소가 보입니다.

따로 설정할게 없어서 Done에서 엔터를 눌러줍니다.

 

프록시도 따로 설정해 줄게 없어서 그냥 넘어갔습니다.

Done에서 엔터를 눌러줍니다.

 

저는 미러를 기본 Default 값으로 설정하였습니다.

Done에서 엔터를 눌러줍니다.

 

저장소를 설정하는 화면입니다.

파티션 분배를 수동으로 하기 위해 Custom storage layout에 (x)로 표시하고 Done에서 엔터를 눌러줍니다.

 

위에 화면에서 free space에서 엔터를 누르면 옆에 창이 나오는데 Add GPT Partition에서 엔터를 눌러줍니다.

 

저는 총 3개의 파티션을 나눴는데 1개의 파티션은 13G를 사용하고 format은 ext4, Mount는 / 로 만들었습니다.

 

두 번째 파티션은 1G를 사용하고 Format은 swap으로 설정하였습니다. 

 

세 번째 파티션은 나머지 용량을 사용하고 Format은 ext4를 사용하고 Mount는 /boot 로 설정하였습니다.

 

파티션 분배가 완료된 화면입니다.

이제 Done에서 엔터를 눌러줍니다.

 

창이 하나가 나오는데 Continue에서 엔터를 눌러 진행합니다.

 

이제 우분투 사용자에 대한 정보를 적는 화면입니다.

유저 이름과 유저 서버 네임 등 기본 정보와 패스워드를 설정합니다.

 

openSSH server에 대한 화면입니다.

따로 설정은 해주지 않고 Done에서 엔터를 눌러줍니다.

 

우분투에 설치하고 싶은 패키지들을 보여주는 화면입니다.

따로 설치하고 싶은 것이 있으시면 체크하고 설치를 진행하시면 됩니다.

 

설치가 진행되고 있는 화면입니다.

조금만 기다리시면 설치가 완료됩니다.

 

화면 위에 Install complete라고 나왔습니다.

이제 Reboot Now에서 엔터를 눌러줍니다.

 

우분투가 꺼졌다가 다시 켜지는데 검정 화면에서 커서만 깜빡거리면서 멈춰있는 경우가 있습니다.

 

이때는 VM 화면 창 오른쪽 상단에서 Drive image options을 클릭하고 CD/DVD에 마우스를 가져가면 옆에 꺼내기 변경이 나옵니다.

꺼내기를 클릭합니다.

 

꺼내기를 완료하셨으면 이제 VM 화면의 왼쪽 상단에 Restarts the VM 을 클릭해 줍니다.

 

우분투가 재부팅이 진행되는 화면입니다.

 

성공적으로 나오는 것을 확인하실 수 있습니다.

우분트를 설치하면서 설정하셨던 유저 이름과 패스워드로 로그인을 진행하시면 됩니다.

 

로그인이 성공 후 우분투가 성공적으로 설치된 것을 확인하실 수 있습니다. 

728x90

+ Recent posts