안녕하세요 깍돌이 입니다.

 

옛날에는 학습하면서 있던 트러블 슈팅들을 전부 포스팅 했었는데 솔직히 변명이지만 현재 너무 바쁘게 일상생활을 살아가고있어서 ( 노는거 아님 ) 

 

오늘은 테라폼(IAC) 를 이용하여서 NCP ( Naver Cloud Platform ) 에 인프라를 세팅 할수 있도록 적용해보려고 합니다.

IAC에 대해서는 구글에 검색하면 엄청 설명 잘되어있는 곳이 있기 때문에 생략 하겠습니다. 

우선 IAC에 대해서는 대략적으로는 알고 있는 상태이기 때문에 테라폼에 대해서 알아 보겠습니다.

What is Terraform?

이제 앞으로 작성되는 개요에서 설명은 공식 홈페이지를 참고합니다. 

https://developer.hashicorp.com/terraform/intro

내용들을 읽다 보면 "클라우드 및 온프레미스 리소스를 안전하고 효율적으로 빌드, 변경 , 버전화 할수 있는 인프라 도구" 라고 되어있습니다.  대표적으로는 AWS , Azure, GCP, OCP , Docker 등을 설명하고 있습니다.

 

테라폼 구조

기본적으로 테라폼은 PROVIDER를 통해서 벤더 클라우드사의 API(OPEN API ) 와의 연동을 통해서 진행되는 구조임을 알수 있습니다.

크게 3가지의 구조를 가진다고 합니다.

Write : 리소스를 정의 (VPC , Subnet, VM 등의 배포 구성)

Plan : 기존 인프라 및 구성을 기반으로 생성, 업데이트 , 삭제 할 인프라를 어떻게 할지에 대한 계획을 설정

Apply : apply 할 경우 모든 리소스 종속성을 고려하여 올바른 순서대로 작업을 수행 ( vpc, subnet, vm 이 있다면 vpc-> subnet- vm 으로 올바른 순서를 찾아서 수행 ) vpc를 수정하게될 경우 확장전의 vpc를 재생성 

 

위와같은 순서를 보게 될 경우 크게는

 

API -> Write -> Plan -> Apply 같은 순서로 진행됨을 알수 있습니다. 

API : NCP의 ACC,SEC 설정

Write : .tf 소스를 작성하는 구간으로 어떤식으로 자원을 구성할지에 대한 설정

Plan : Write 에 작성된 tf를 읽어서  생성이 되는지 오류가 없는지 어떻게 생성되는 등에 대한 내용 을 확인

Apply : 현재 작성된 내용으로 인프라를 적용

 

Terraform

설명은 대충 여기까지만 하고 Windows 에서 설치 및 동작을 확인해보겠습니다.

https://developer.hashicorp.com/terraform/downloads

스펙에 맞는 테라폼 다운로드 및 압축 해제 ( zip으로 되어있고 압축 해제하면 terraform.exe만 나옵니다 )

C:\terraform 폴더 생성 후 이동

 

Windows - 고급 시스템 설정 - 고급 - 환경 변수 ( N ) 에서 

path 에 편집으로 테라폼 경로 추가  및 terraform --version 테스트

1.3.7 Windows_386 확인

기본적인 샘플 파일 작성 및 동작 확인을 위해서 main.tf , outputs.tf , variables.tf, versions.tf 를 작성합니다.

main.tf

provider "ncloud" {
  access_key = var.access_key
  secret_key = var.secret_key
  region     = var.region
}

data "ncloud_regions" "regions" {
}

data "ncloud_server_images" "server_images" {
}

resource "ncloud_server" "server" {
  name                      = var.server_name
  server_image_product_code = var.server_image_product_code
  server_product_code       = var.server_product_code
}

 

variable.tf

variable "access_key" { 
  default = ""
}

variable "secret_key" { 
  default = ""
}

variable "region" {
  default = "KR"
}

variable "server_name" {
  default = "terraform-test"
}

variable "server_image_product_code" {
  default = "SPSW0LINUX000046"
}

variable "server_product_code" {
  default = "SPSVRHICPUSSD002" 
}

versions.tf

terraform {
  required_version = ">= 0.13"
  required_providers {
    ncloud = {
      source = "navercloudplatform/ncloud"
    }
  }
}

terraform plan 후 terraform apply 하면 서버를 생성합니다. 

그리고 server_name 을 변경시

위와같이 plan 이 나오고  terraform apply 시 변경이 시작됩니다.

 

** 주의사항 기본 샘플 파일로 이것저것 하다가 문제점은 아니지만 기대결과랑 다른 경우가 있습니다.

NCP에서 서버는 server_image_product_code ( OS 코드 ) 와 server_product_code ( OS에 따른 스펙코드 ) 쌍으로 이루어지게 됩니다.

 

테라폼에서 OS코드에 맞지 않는 스펙코드를 사용할경우 500이 발생하며 중지되는건 이해가 됩니다. 

예를들면 Windows는 100G만 지원하지만 windows 2016에 리눅스 스펙코드를 넣으면 (리눅스는 only 50g) 오류가 나는게 정상이니까요 

 

하지만 지원되는 스펙 코드지만 오류가 나는 케이스가 있습니다.

NCP의 경우 Classic과 VPC 2개의 플랫폼을 제공하고 있는데요 

server spec change에서 다른점이 하나 있습니다. VPC는 Standard -> HiCPU 로의 타입을 넘어선 스펙변경이 가능하다는 점이고 Classic은 불가능 하다는 점입니다.

Classic에서 변경이 되는 타입은 Compact, Standard 입니다. 그외에는 모두 같은 타입에서만 스펙 변경이 가능합니다.

 

VPC같은 경우는 모든 스펙 을 넘어선 변경이 지원되기 때문에 문제가 되지 않습니다. 

 

그래서 저는 Terraform 은 해당 인프라를 구성해주는 역할을 한다고 생각 했기에 hicpu 로 만들어진 Classic서버를 Standard로 하고 apply 하면 오류가 없을거라 생각 했습니다.

 

HICPU -> Standard 로 변경시

오류 발생 

Classic에서는 지원되지 않는게 정상이기 때문에 API 를 통해 벤더사와 연결하는 테라폼에서는 위와같은 에러를 정상적으로 받고 apply 를 종료하게 됩니다.  아무생각없이 이경우라면 저는 다시한번 재시도해서 정지 -> 반납 -> 원하는 스펙으로 생성 해주길 기대했는데 그렇진 않았습니다.

 

서버 이름 변경시에는 terminate -> create 지만

서버 스펙 변경 은   stop -> modify -> boot (또는 modify)같은 형태로 넘어가게 됩니다.  테라폼에서 말하는 멱등성에서도 벤더사의 케이스에 따라 오류가 나는 부분이 있을수 있기 때문에 학습 하는 과정에서 이런 예외처리등을 많이 확인해야 될거 같습니다.

 

* 추가 - 서버 설명 변경도 벤더사에서 지원해주는 API 가 없기 때문에 stop - terminate -> create(이때 설명을 새로 넣음) 

같은 형태로 넘어가게 됩니다. 별거 아닌거 수정한다고 건드리면 자주 지우고 만들거 같네요

 

다음 포스팅은 data, resource 및 파일 구조 terraform plan, terraform apply 시 어떤 동작이 되는지에 대해 작성하겠습니다.

 

 

 

 

안녕하세요 오늘은 네이버 클라우드 플랫폼 이죠 NCP 에 대해서 적어 보려고 합니다.

최근 1년사이에 www.ncloud.com/ 에서도

네이버 클라우드 플랫폼의 최근 추가된 VPC 

VPC(Virtual Private Cloud) 가 출시 되며 기존에 있던 네이버 클라우드 플랫폼에 Classic 환경에서 사용하던

ACG(AccessControlGroup) 은 VM < - > VM 단위의 네트워크 룰을 적용하였다면 VPC가 출시되면서 Subnet 이라는 개념과 함께 Subnet < - > Subnet 의 네트워크 룰을 적용할수 있는 NACL 이 등장하게 되었습니다.

기본적으로  NACL 은 ACG와는 조금 다른 형태를 띄고 있기 때문에 이에 대해서 간단하게 적어 놓도록 하겠습니다.

 

NACL ( Network  Access Control List ) 

네이버 클라우드 플랫폼 환경에서 기존에 Classic에 경우는 ACG를 통하여서 VM 간의 차단룰을 적용했다면 NACL의 경우에는 Subnet 을 통한 차단룰을 적용합니다.  간단하게 설명된 곳이 있어 첨부합니다.

출처 : 코스콤 금융 클라우드 www.koscom.cloud/product/networking/vpc

서버의 접근 제어 서브넷의 접근 제어
허용 (Allow) 허용 및 거부 (Allow/Deny)
상태 저장
(규칙에 관계없이 반환 트래픽이 자동으로 허용됨)
상태 비저장
(반환 트래픽이 규칙에 의해 명시적으로 허용되어야 함)
ACG를 서버의 NIC에 적용 서브넷에 있는 모든 서버에 자동 적용됨

흔히 ACG는 Stateful NACL 은 Stateless라고 표현을 하기도 합니다.  ACG는 따로 포스 중이기 때문에 거기서 설명하도록 하겠습니다. 

NACL 을 적용해 보기 위해서는 일단 네이버클라우드플랫폼에서 VPC와 Subnet을 하나 만들어야합니다.

VPC 생성

Console 접속 후 VPC - VPC Management 에서 [ + VPC 생성 ] 을 클릭하여 아래와 같이 생성합니다.

기본적으로 특수 목적용 사설 IP대역은 위의 범위내에서 지정하도록 되어있기 때문에 저는 10.2.0.0/16 대역으로 지정하였습니다. 이부분에 대해서도 CIDR에 대한 설명이 필요하지만 해당 포스팅에선 따로 설명하지 않겠습니다.

생성이 완료되면 VPC내부에 VM 을 놓기 위한 Subnet을 생성합니다.

 

Subnet 생성 

VPC Management 바로 밑에 있는 Subnet Management 로 들어가서 [ + Subnet 생성 ] 을 선택합니다.

원하는 서브넷 이름을 정하고 방금 생성한 VPC를 선택하도록 합니다.

 

VM 생성

VM 생성은 이제 일반적인 서버 생성을 하신다고 보면되며 2개의 VM 이 생성되었다고 가정하겠습니다.

Send-Server( 10.2.1.55 )    

Recv-Server ( 10.2.1.77 )

 

NACL

NACL 은 기본적으로 VPC가 생성됨에 따라서 vpc-default-network-acl 이 하나 생성되며 아무런 룰도 존재하지않습니다.

NACL 의 Default 룰은 ALLOW 입니다. 그렇기 때문에 기본적인 서버를 생성시에는 ACG룰에 의하여 적용이 됩니다. (ACG는 Default DENY)

위와같이 NACL 의 경우 Default 가 "ALLOW" 이기 때문에 아무런 룰이 없어도 NACL 규칙에 위반되는 트래픽이 발생하지않습니다. 

 

해당 상황에서 

Send-Server( 10.2.1.55 )  ==== > Recv-Server ( 10.2.1.77 ) 에서 10.2.1.77 의 22번 포트차단시 단순하게는 

Case 1

   InBound 10.2.1.77  22 차단

Case 2

   OutBound 10.2.1.77 22 차단

 

2개의 케이스를 도출해낼수 있다고 생각 할수 있는데요  실제로 케이스 1번은 차단되지않습니다. 

처음에 잘못 생각 했던 부분이 Case 1번과 같이 룰을 지정해 놓게 되면

Send-Server 에서 -> Recv-Server 까지는 트래픽이 나가고 ( 인바운드만 차단이니까 ) 다시 들어올 때 10.2.1.77 의 22번 포트로 들어오겠지? 라는 생각에 당연히 막히겠지 라는 잘못된 생각을 가질수 있습니다.

 

간단하게 정리하면

 

NACL

-- inbound 포트 : 목적지 포트 ( VM 으로 들어오는 port )

-- outbound 포트 : 출발지 포트 ( VM 에서 나가는 port )

 

그럼 1번 케이스가 차단이 되어야 하지 않나? 라고 여기서고 생각한다면 OS에 특징을 봐야합니다. 네이버클라우드플랫폼에 있는 Centos 7.8 OS를 기준으로 하게되면  inbound 룰을 차단하게 되면  10.2.1.77 로는 일단 트래픽이 나가고 

다시 들어오는 IP 와 포트의 22을 차단하게 됩니다. 실제로 들어오는 IP는 10.2.1.77 이 들어옵니다. 하지만 Port는 랜덤하게 지정해줘서 들어오게 됩니다.  해당 포트 는 1024 ~ 65535 에서 랜덤으로 주게 되었으며 실제로 우리가 알고 있는 port의 범위는

 

0 ~ 1023 : well-known port번호 해당 영역의 port번호는 UNIX/LINUX에서 root 권한으로만 port를 열 수 있습니다. 예약영역이라고 보면 됩니다. 

1024 ~ 49151번: 등록된 포트 (registered port) 이 영역은 주로 서버 소켓으로 사용하는 영역입니다. 

49152 ~ 65535번 : 동적 포트(dynamic port) 이 영역은 client가 connect(2)시 또는 bind(2)없이 server socket을 생성했어 listen(2)할 경우에 자동으로 할당되는 영역입니다. server socket에서 자동할당하면, client에게 할당된 port번호를 알릴방법이 있어야하기 때문에 서버 소켓은 prot번호를 정합니다.

위와같은 영역이 정해져있습니다. 하지만 우리가 쓰고있는 VM들은 어느 범위 내에서 포트를 할당할시 알수가 있습니다.

바로 port_range 인데요 

네이버 클라우드 플랫폼의 VM인 Centos 7.8 을 기준으로 

vi /proc/sys/net/ipv4/ip_local_port_range

결과

32768   60999

 

해당 범위내에서 포트를 지정해서 다시 돌려주도록 되어있습니다. 제가 Express.js나 Java 서버든 장고를 사용하든 해당 OS설정으로 인해서 해당 포트의 범위를 돌려줍니다.

 

그래서 위의 상황에서 CASE는 아래와같이 변경되어야 합니다.

 

Send-Server( 10.2.1.55 )  ==== > Recv-Server ( 10.2.1.77 ) 에서 10.2.1.77 의 22번 포트 차단시 단순하게는

Case 1

   InBound 10.2.1.77  32768-60999 차단

Case 2

   OutBound 10.2.1.77 22 차단

 

이렇게 되면 1번 케이스에서 55서버는 77서버로 아웃바운드 트래픽을 정상적으로 나가고 77서버는 55서버에게 다시 돌려주기 위해서 10.2.1.77:(32768-60999) 포트를 돌려주게 되며 해당 룰은 차단되어있기 때문에 10.2.1.55 서버에서 NACL 에 의해 막히게 됩니다. 

 

간단하게 NACL 에 대해 살펴 보았습니다. 사실 위에 부분 말고는 처음 NACL 을 접하였을 때 특이사항은 없었던 것 같습니다.  잠깐 신경 안쓰다 보니 다시 잊혀져 가는거 같아서 포스팅을 해놓았습니다.  ㅎㅎ

 

 

감사합니다.

네트워크 사설 IP대역으로 아래와 같습니다. VPC같은 독립 사설망에서 생성되는 IP대역이

 

아래의 대역을 쓰지 않는다면 그것은 잘못만들어진 대역이라고 볼 수 있습니다.

 

해당 IP대역은 전세계 표준입니다.

 

▶사설IP대역

10.0.0.0~10.255.255.255

172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

Centos7

최초 도커 설치 후 실행하는 환경은 centos 7이였습니다.

현재 보고 있는 책은 도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문 이라는 책을 보고 있는데 첫 부분에 보면

 

dokcer image pull [location]
docker container run -t -p 9000:8080 [location]

하는 부분이 있다. image pull 까지는 정상적으로 되지만 run 이 되지않는 현상이 발생하였다.

해당 오류 메시지는

TasksAccounting, or unknown property

 

이게 도대체 무엇이란 말인가.... 현재 정리하지 말고 끄젹여 보자면 단순하게 centos 가 오래된 버전을 사용하고 있어서 이기 때문입니다.

sudo -s yum update - > 후 docker container run 시 정상적으로 동작합니다.

 

Windows 10 

책은 윈도우즈 / mac 기준으로 되어있기 때문에 실습 환경을 다시 구성했습니다. ( 더 확실한 이유는 현재 NBP MicroServer를 사용하고있는데 도커로 9000 포트를 열어놓고 다른 포트로 확인시에는 포트포워딩이 부족하여 공인 IP를 새로 할당 받은 후 포트포워딩을 추가적으로 해줘야 할 것으로 보여 - 추가금 발생) 해당은 도커에 대해 조금 능숙해지고 웹 페이지가 어느정도 만들어 졌을 때 직접 사서 다시 환경을 구축하려고 합니다.

 

어찌 저찌 도커 설치 후 Windows 에서 

dokcer image pull [location]
docker container run -t -p 9000:8080 [location]

시도 할 경우  아래 와 같은 로그인 메시지가 나타납니다. 

이거야 뭐 로그인하면 되겠지 

docker login 

userId@mail.com

password 입력시

get  https://registry-1 .docker.io/v2/: unauthorized : incorrect username or password

?? 비밀번호를 무조건 맞게 썻었는데 docker hub도 정상적으로 로그인이 되는데 뭐가 문제일까 찾아 보았습니다.

Windows CMD 에서 docker login 으로 로그인시 이메일 @ 뒤에는 작성하지 않으면 됩니다.

ppap@naver.com 이라면 -> ppap 로 로그인하셔야 합니다.

로그인 성공..

 

 

 

Docker Images 삭제 (none 이미지)

빌드 테스트 및 실행을 하다보면 Images가 none 으로 많이 생기게 됩니다. 이를 위해서 

이미 지를 삭제 해야하는데 이때 사용되는 명령어는 

docker rmi $(docker images -f "dangling=true" -q)

하지만 Error response from daemon: conflict: unable to delete 1d073211c498 (must be forced) 에러가 발생합니다.

 

해당 이미지를 통해서 실행되고 있는 컨테이너가 있다는 뜻인데요 처음에는(오늘이 처음인딩) 잘 몰르기 때문에 

단순하게 docker ps로 만 확인 하는 경우 였습니다. docker ps (기본 은 실행되고 있는 컨테이너만 보여줍니다.)

 

docker ps -a  로 확인 하면 실행되지 않는 이미지 빌드 후 만들어진 컨테이너들이 나타납니다.

 

해당 컨테이너(실행하지않는)를 전부 삭제 합니다.

** -q 는 ID만 출력하는 옵션입니다. 

rm 은 컨테이너 삭제 인데 삭제할 컨테이너의 id를 지정해야 하기 때문입니다.

docker rm $(docker ps -a -q)

 

이와같이 컨테이너를 전부 종료 후 

docker rmi $(docker images -f "dangling=true" -q)

정상적으로 지워지는 모습

정상적으로 지워집니다. 윈도우 CMD에서는 $ 를 통한 명령행 전달이 잘되지 않아서 PowerShell 을 사용하였습니다.

 

프로비저닝(provisioning)

사용자의 요구에 맞게 시스템 자원을 할당,배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비 하는것

매시업 (Mashup)

웹으로 제공하고 있는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 것

 

INFRASTRUCTURE PLATFORM (IaaS)

 AWS EC2 GLE(Google Cloud Engine) Azure Vms

 

CONTAINER PLATFORM (CaaS)

GKE ECS ACS

 

APPLICATION PLATFORM (Paas / aPaaS) 

Heroku PCF Jelastic

 

FUNCTION PLATFORM (FaaS)

AWS Lambda GCF Azure Functions

 

SOFTWARE PLATFORM(SaaS) 

Salesforce Oracle SAP

 

 

+as a service

 

 

 

 

 

 

 

 

안녕하세요 오늘은 국내 클라우드 중 NBP (Naver Business Platform) 의 맛을 보기 위해서 회원 가입을 하고 접속

 

해보았습니다.

https://www.ncloud.com/intro/feature

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

제가 생각 하기엔 국내 최고의 클라우드를 서비스 하는 곳이라고 생각되어집니다.

 

새로 가입을 하게 되면은 서비스를 이용하기 위해서 결제 수단을 등록 하게 되는데요

 

결제 수단등록 시 1 년간 Micro Server 를 무료로 사용하실수 있습니다.

https://www.ncloud.com/support/notice/all/387  // 마이크로 서버 공지 

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

1년이 지나게되면은 유료 가격이 측정 되니 꼭 유의해주세요!!

1시간     19 원 

월         13,000원 

 

프리티어 1년 짜리 Micro Server 에 node.js를 세팅해보려고 합니다. 

 

좌측 상단에 Console 이라는 창을 눌러서 NBP Console 에 접속 한 다음에 

 

Server -> Server 에 들어가시게 되면

서버 생성이라는 화면을 볼수 있습니다. 

 

이 부분에서는 centos -7.3-64를 선택 할건데요  

 

서버 타입 : Micro

 

로 꼭 설정해주셔야 합니다. (하지만 돈 나가용!)

 

이후에 해야 하는 것들은

 

인증키 설정 (절대 잊어 버리시면 안됩니다.)

ACG(Access Control Group) 설정 

공인 IP 할당( Public IP )

 

사실 이부분은 제가 따로 작성할 필욘 없을 것 같습니다. 이미 NBP 공식 블로그에서 너무 자세히 설명이 되어있어서

https://blog.naver.com/n_cloudplatform/221030710983

 

[이렇게 사용하세요!] 네이버 클라우드 플랫폼으로 손쉽게 웹 서버(APM) 구축하기

​네이버 클라우드 플랫폼을 이용하여 나만의 웹페이지 만들기​​블로그, 카페, 티스토리 등 컨텐츠를 올...

blog.naver.com

그리고 위의 url에 없는 포트포워딩과 ACG 공인 IP 가이드 자료입니다.

http://docs.ncloud.com/ko/compute/compute-2-2-v2.html

 

설명서 - NAVER CLOUD PLATFORM

서버 접속 절차 서버 접속 절차는 3단계로 구성됩니다. 리눅스 서버 접속 윈도우 서버 접속 포트 포워딩이란? 네이버 클라우드 플랫폼에서 구매한 서버는 비공인 IP가 할당됩니다. 포트 포워딩은 인터넷을 통해 비공인 IP가 할당된 서버에 접속하기 위한 기능을 제공합니다. 서버 접속을 위한 공인 IP는 고객당 1개가 할당되며 직접 설정한 외부 포트번호로 서버를 구분합니다. 아래와 같이 외부 포트 번호로 1024와 1025를 설정하는 경우, 포트 번호와 연결된

docs.ncloud.com

여기까지 완료가 되면 이제 접속을 할수 있게 되는데요

 

Micro Server는 말그대로 정말 아무것도 없는 형태로 만들어집니다. 위의 작업이 다 되었다면 Putty 를 통해

 

접속 합니다.

유저 생성

useradd -m user명 (-m은 홈 디렉토리를 같이 생성하는 옵션입니다. test라면 /home/test 가 같이 생성되는)

passwd user명 (위의 생성한 유저의 패스워드를 설정 합니다.)

 

권한 설정

최초 실행시에는 sudoers 권한이 없기 때문에 관리자 권한이 필요하면 매번 root로 들어가야되는데 

sudoers를 설정해 놓으면 sudo를 통해 권한을 빌려와서 사용할수 있습니다. 그렇기 때문에 해당 권한을 설정해줍니다.

 

su user명 ( 계정변경 )

 

su root(루트 계정으로 변경)

 

cd /etc/ (etc 경로로 이동)

 

chmod u+x sudoers (열어서 수정하기 위한 권한 입력)

 

vi sudoers ( sudoers 열기 )

su user명 ( 계정변경 )

su root(루트 계정으로 변경)

cd /etc/ (etc 경로로 이동)

chmod u+x sudoers (열어서 수정하기 위한 권한 입력)

vi sudoers ( sudoers 열기 )

 

## Allow root to run any commands anywhere 밑에
계정명 ALL=(ALL) ALL  

 

** 만약에 못찾으신다면 vi로 여신 후  / 를 입력 후

 

입력 입력하여서 위치를 찾을수 있습니다. 저는 oqa라는 계정에 추가 하였는데요  위와같이 입력 후 


ESC + : wq!  ( 강제 저장 후 종료 )

 


chmod 440 sudoers (기본값 원복)

su 계정명 ( 계정이동 - root가 아닌 원래의 계정으로 이동 ) 

     -> 이제 sudoers가 있기 때문에 root의 권한을 빌릴수 있습니다.

 


sudo yum install -y yum-utils 
( 레포지토리 추가 )  

sudo yum-config-manager \ --add-repo \ https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
( docker stable 레포 추가) 

sudo yum makecache fast 
( update yum package index ) 

(CentOS 7) 
sudo yum -y install docker  

docker -v 
버전 확인 ( 1.13.1 build b2f74b2/) 

sudo service docker start 
( 도커 시작 ) 

sudo chkconfig docker on 
(부팅 시 자동실행)  

버전명 보는 법 cat /etc/*-release 

curl -fsSL https://get.docker.com/ | sudo sh 
도커 설치  


자 여기까지 Docker 설치까지 완료 되었습니다.

다음포스팅에서는 간단하게 Node.js 를 Docker를 통해서 설치 해보도록 하겠습니다.

 

+ Recent posts