터칭 데이터

Docker & K8S - 데모 본문

Docker & K8S

Docker & K8S - 데모

터칭 데이터 2023. 12. 18. 17:49

 

 

 

 

 

Docker Image 살펴보기

 

cat Dockerfile

FROM node:alpine
COPY . /app
WORKDIR /app
CMD node app.js

 

Dockerfile이라는 Docker 이미지(Image)파일은 위와 같고 CMD에 node app.js라는 명령어가 지정되어 있습니다.

 

 

 

 

 

cat app.js

console.log("Hello Docker!");

 

app.js는 console.log("Hello Docker!");라는 코드로 이루어져 있고

 

 

 

 

node app.js

Hello Docker!

 

CMD에 적혀있던 node app.js는 app.js를 실행하며 app.js는 살펴본 코드대로 Hello Docker!를 출력합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Docker Image 빌드(build)하기

 

docker build -t hello-world-docker .

docker build --platform linux/amd64 -t hello-world-docker .

 

첫번째 명령과 같이 적어도 실행은 되지만 아래와 같이 --platform을 미리 주의하고 작성하면 생성될 이미지가 실행될 환경에서의 정상적인 작동을 안정적으로 미리 지정할 수 있습니다.

 

docker build는 Dockerfile을 기반으로 Image를 생성하는 명령입니다. Image는 소프트웨어에 필요한 파일들을 패키징한 것이라고 말씀드렸습니다.

 

-t hello-world-docker는 도커 이미지에게 hello-world-docker라는 이름(별칭)을 주겠다는 옵션입니다.

 

온점(.)은 현재 위치에 있는 파일들을 기반으로 이미지를 생성한다는 뜻입니다.

 

 

 

 

 

 

 

 

 

 

 

Docker Container로 한번 돌려보기

 

docker run hello-world-docker

Hello Docker!

 

run으로 구동하니 Hello Docker!가 정상적으로 출력됩니다.

 

run으로 동작했으니 docker image ls로 hello-world-docker가 조회될 것입니다.

 

 

 

 

 

 

 

 

 

Docker Hub Repo에 push하기

 

 

 

 

 

Docker Hub에서 본인의 계정인 어카운트(Account) ID를 네임 스페이스로 갖는 hello-world-docker repository를 생성하세요.

 

 

 

 

다시 터미널로 돌아와

docker tag hello-world-docker (어카운트ID)/hello-world-docker:latest
docker image ls

(어카운트ID)/hello-world-docker
hello-world-docker

 

docker tag로 hello-world-docker 이미지에 별칭으로 Docker Hub repo 경로를 적어줍니다. 버전을 latest로 주려면 콜론(:)을 포함한 이후는 적지 않아도 좋습니다.

 

docker image ls로 확인해보면 같은 IMAGE ID를 갖고 있음에도 2개의 Repository가 생긴 것을 확인할 수 있습니다. 어카운트ID/hello-world-docker, hello-world-docker

 

 

 

 

이대로 Push를 해도 좋지만 그전에 해야할 일이 있습니다.

docker login --username=(자신의 어카운트ID)
(패스워드 요구시 입력)

 

바로 로그인입니다.

 

 

 

 

그리고 push합니다.

docker push (어카운트ID)/hello-world-docker

 

tag를 적지 않으면 자동으로 latest가 태그로 지정됩니다.

 

 

 

 

Git Hub repo에서 결과를 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

다른 리눅스 서버에서 Docker IMAGE 사용하기

 

 

 

 

 

 

https://labs.play-with-docker.com/ 를 사용해서 4시간동안 서버를 하나 무료로 사용

 

 

docker version

 

docker version으로 Server(Docker Engine)와 Client(Docker Container)를 확인할 수 있습니다.

 

 

 

docker pull (어카운트ID)/hello-world-docker

 

docker pull로 Docker Hub에서 특정 이미지를 다운받을 수 있습니다.

 

 

 

 

docker image ls

 

정상적으로 다운 받았다면 조회가 될 것입니다.

 

 

 

 

 

docker run (어카운트ID)/hello-world-docker

Hello Docker!

 

우리가 Dockerfile로 생성한 Docker Image를 Docker hub에 push하고 다른 서버에서 pull하여 실행까지 완료했습니다.