brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 15. 2021

158. Google Cloud GCP 도커 (이론)

사용하는 법과 순서에 대해 이론적으로 이해해보자~


Docker는 플랫폼이다.

도커에서 컨테이너 만들어 보자

컨테이너 실행해보자

컨테이너 실행 로그 보자

도커 레지스트리 사용해보자.

도커 레지스트리에서 이미지를  올려보자

도커 레지스트리에서 이미지를 가져와 서비스 해보자


이미지 출처

https://cultivatehq.com/posts/docker/




구글 클라우드에서 docker 플랫폼을 사용해보자


<1> GCP cloud shell 사용하기

<2> docker 사용해 보기

<3> 도커 빌드하기

<4> 이미지  레지스트리로 올리기

<5>  레지스트리에서 가져와서 서비스 하자.

<10> 깉이 보면 좋을 사이트




<1> GCP cloud shell 사용하기


1

 GCP 는 프로젝트 인증을 받아야 한다.

확인

gcloud auth list



2

구글은 프로젝트 단위로 서비스한다

프로젝트 확인하자

gcloud config list project



참고 할만한 사이트

https://brunch.co.kr/@topasvga/866




<2> docker 에서 컨테이너 사용해 보자


1

docker run hello-world

// 기본적으로 제공되는 이미지가 있어, hello-world 이미지를  가져오게 된다.


2

docker images

docker run hello-world

docker ps

docker ps -a

mkdir test && cd test


3

도커 파일 만들기

cat > Dockerfile <<EOF

// 설정 파일



4

cat > app.js <<EOF

// node 파일 





<3> 도커 빌드하기


도커 파일로  이미지를 만드는 과정이다.


1

docker build -t node-app:0.1 .


2

도커 이미지 확인

docker images


3

도커에서 실행하기

외부 4000번 포트를 내부 80 포트와 매칭한다.

docker run -p 4000:80 --name my-app node-app:0.1


4

curl http://localhost:4000


5

도커에서 app 중지 , 삭제

docker stop my-app && docker rm my-app


6

로그 확인

docker logs [container_id]


7

도커에서 빌드하기

cd test

docker build -t node-app:0.2 .


8

도커에서 8080으로  실행하기

docker run -p 8080:80 --name my-app-2 -d node-app:0.2


9

프로세스 확인

docker ps


10

접속 해보기

curl http://localhost:8080


11

로그 확인하기

docker logs -f [container_id]


12

컨테이너 실행하기 

docker exec -it [container_id] bash


ls

exit


13

메타 데이터 , 상세 데이터 보기

docker inspect [container_id]


14

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [container_id]


// ip 확인 된다.




<4> 이미지  레지스트리로 올리기


실무에서는 레지스트리에 이미지를 올려 놓고 해당 이미지를 사용한다.


1

gcloud config list project



2

docker tag node-app:0.2 gcr.io/[project-id]/node-app:0.2

docker images


3

docker push gcr.io/[project-id]/node-app:0.2


4

콘솔에서  레지스트리 저장소에 올라 와 있는지 확인


5

모든 컨데이너 중지하고 제거

docker stop $(docker ps -q)

docker rm $(docker ps -aq)


6

노드 제거 전에  하위 이미지 제거

docker rmi node-app:0.2 gcr.io/[project-id]/node-app node-app:0.1

docker rmi node:6

docker rmi $(docker images -aq) # remove remaining images

docker images




<5>  레지스트리에서 가져와서 서비스 하자.


실무에서는 레지스트리에 이미지를 올려 놓고 해당 이미지를 사용한다.


docker pull gcr.io/[project-id]/node-app:0.2

docker run -p 4000:80 -d gcr.io/[project-id]/node-app:0.2

curl http://localhost:4000




<10> 같이 보면 좋을 사이트


https://brunch.co.kr/@topasvga/1800



기타

https://brunch.co.kr/@topasvga/1817


감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari