터칭 데이터
Docker & K8S - 데모 본문
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하여 실행까지 완료했습니다.
'Docker & K8S' 카테고리의 다른 글
Docker & K8S - 우분투(Ubuntu) (0) | 2023.12.18 |
---|---|
10주차 - 1 [Docker & K8S] (0) | 2023.12.18 |
Docker & K8S - IMAGE와 TAG 보충 설명 (0) | 2023.12.18 |
Docker & K8S - 실습 간단한 Hello World 프로그램(2) (0) | 2023.12.18 |
Docker & K8S - 실습 간단한 Hello World 프로그램(1) (0) | 2023.12.18 |