쿠버네틱스로 가는 발판② - GCP에서 Docker(도커) 활용기

2022. 6. 4. 16:26IT용어 아는척 하기

반응형

 

 

지난 포스팅에서 도커의 기반이 되는 컨테이너 기술과 기본적인 도커의 개념들을 살펴봤다.

 

 

 

쿠버네틱스로 가는 발판① - Docker(도커) 기본 개념

회사에서 새로운 프로젝트를 들어가면서 쿠버네틱스를 사용할 일이 생겼다. 지금까지 프론트엔드를 기반으로 개발 커리어를 쌓아왔는데 백엔드를 깊게 파볼 기회가 생겼다. 본 프로젝트에 들

bgradecoding.tistory.com

 

이번 포스팅에서는 직접 GCP(Google Cloud Platform)에 도커를 설치해보고 도커의 라이프싸이클을 직접 명령어로 실행해 볼 것이다.

 

 

 

일단 GCP에 VM 인스턴스를 하나 생성하자.

앞 포스팅에서도 언급했듯이 도커는 컨테이너 기술을 활용한 소프트웨어로 리눅스 커널 기능을 활용하기 때문에 다른 OS보다는 리눅스 계열에서 사용하는 것이 좋다.

 

 

 

GCP 콘솔에 접속하여 Compute engine 메뉴에 접속하여 VM 인스턴스를 클릭하면 아래와 같은 화면이 나온다.

여기서 인스턴스 만들기를 클릭한다.

 

 

 

 

 

 

대부분 기본으로 세팅하고 OS를 우분투로 바꿔준다.

 

 

 

인스턴스가 생성되면 SSH를 눌러 터미널을 실행시킨다.

 

 

 

 

터미널이 나오면 sudo su 명령어를 통해 루트 권한을 얻는다

(이 포스팅의 명령어들을 설치 시를 제외하고는 sudo를 붙이지 않는다. 루트 권한이 없다면 sudo를 붙여서 수행해야한다.)

 

 

이제 도커를 설치하자.

 

아래 명령들을 순차적으로 실행하자.

 

$ sudo apt-get update

 

 
$ sudo apt-get -y install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

 

 

Docker의 Official GPG Key 를 등록한다.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

 

 

stable repository 를 등록해줍니다.

echo \ "deb [arch=amd64 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

 

docker --version

 

위 명령어를 실행했을때 도커 버전이 출력되면 설치는 성공적으로 끝난 것이다.

 

 

 

이제 부터 도커 라이프사이클에 맞춘 명령어들을 수행해 보겠다.

 

 

 

 

먼저 도커 허브에 있는 nginx 이미지를 다운로드 받아 컨테이너로 실행시켜보겠다.

 

 

도커 허브 레지스트리에서 nginx를 pull 받는다.

docker pull nginx

 

 

다운 받은 이미지를 컨테이너화 한다.

 

docker create -p 80:80 --name nx nginx

( 앞의 80이 VM 포트이고 뒤의 80이 컨테이너의 포트이다. )

 

 

생성된 컨테이너를 확인한다.

 

docker ps -a

해당 컨테이너 ID로 컨테이너를 메모리에 띄운다.

 

docker start 42ac654b8b45

 

브라우저에 외부 IP 80포트로 접속해 보면 nginx가 실행된 것을 볼 수 있다.

 

 

이후 중지 명령과 삭제 명령들을 차례로 수행한다.

 

docker stop 493979b3a04d
docker rm 493979b3a04d
docker rmi nginx

 

컨테이너가 실행되고 있는 중에는 이미지가 삭제되지 않으니 주의해야 한다.

 

rmi -f 옵션을 이용하면 컨테이너가 떠있어도 강제 이미지 삭제가 가능한다.

 

 

이번에는 RUN 명령어를 통해 Create와 Start를 함께 수행해 보자

 

레지스트리에서 tomcat 이미지를 다운로드 한 후 아래 명령을 수행해 보자.

docker run -d --name tc -p 80:8080 tomcat

 

브라우저를 통해 잘 실행되는 것을 볼 수 있다.

 

 

이외 몇가지 유용한 명령어들이 있다.

 

 

 

컨테이너 내부 셸 실행

 

docker exec -it tc(수행중인 컨테이너 이름) /bin/bash

 

 

 

 

컨테이너 로그 확인

 

docker logs tc

기본적인 로그나 에러로그를 확인이 가능하다.

 

 

 

로컬 파일을 컨테이너로 복사, 컨테이너 파일을 로컬로 복사, 컨테이너간 파일 복사

 

docker cp <path> <to container>:<path>
docker cp <from container>:<path> <path>
docker cp :  <from container>:<path> <to container>:<path>

 

 

임시 컨테이너 생성

docker run -d -p 80:8080 --rm --name tc tomcat

 

--rm 옵션을 주면 컨테이너를 내리는 순간 삭제된다.

 

 

 

다음 포스팅에서는 해당 명령어들과 추가적인 명령어들을 가지고 DB를 가진 서비스 하나를 도커로 실행해보도록 하겠다.

반응형