docker 맛보기

bo04·2022년 6월 10일
0

docker

목록 보기
2/2

만약 nodeJS를 설치하지 않고도 서버에 올릴 수 있다면?

javascript 코드를 실행해서 서버로 올릴려면 nodeJS를 설치하고 npm install을 실행해야되는데 도커를 이용하면 이런 과정없이 서버에 올릴 수 있다!

nodeJS를 직접 설치하고 실행하는건 우리의 로컬 컴퓨터에서 실행시키는거지만, 도커는 컨테이너에서 실행시킨다. 그리고 컨테이너는 항상 이미지 기반이니 이미지를 만들기 위해 먼저 도커 파일을 만들어보자.

직접 실행해보기

Dockerfile 만들기

Dockerfile 안에는 3000포트에서 nodeJS를 사용해서 해당 프로젝트의 코드를 실행하는 코드가 들어있음.

한마디로 이 도커 파일을 이미지 시킨후 이 이미지를 실행했을때 서버에 올라가면 도커를 성공적으로 실행했다는 뜻!

docker 이미지 만들기

💡 터미널을 열었을때 해당 터미널의 위치가 해당 프로젝트의 위치인지 확인하자! 그리고 도커 프로그램이 실행중인지도 확인하자!

터미널을 열어서 docker build .를 입력하면 해당 하위 위치에서 도커파일을 찾고 그 도커파일을 기반으로 도커 이미지가 빌드됨

성공적으로 도커 이미지가 생성되었을 알 수 있음. 저 빨간 줄은 생성된 이미지의 id로, 이 id를 사용해 해당 이미지를 기반으로 컨테이너를 실행할 수 있음

컨테이너 실행하기

docker run -p 3000:3000 [이미지 id]를 입력하면 해당 이미지를 기반으로 컨테이너가 실행됨.
-p 3000:3000은 포트 3000에 포트 3000을 연결한다는 뜻으로, 로컬 3000에서 실행되는 애플리케이션을 3000포트에 연결하겠다는 의미임.

3000 포트에 잘 올라갔음을 알 수 있음

컨테이너 중지하기

docker ps로 실행중인 모든 컨테이너의 목록을 볼 수 있음.

현재 돌아가는 컨테이너는 하나로 맨 뒤의 단어가 컨테이너의 이름임. 이 이름은 랜덤으로 자동할당된 이름으로, 이 이름을 사용해서 컨테이너를 중지시킬 수 있음

docker stop [컨테이너 이름]을 입력하면 해당 컨테이너가 중지됨

컨테이너와 이미지 정리

  • 컨테이너: 애플리케이션, 웹 사이트, 노드 서버, 애플리케이션을 실행하는 전체 환경 등 모든것을 포함하는 작은 패키지. 이 안에 소프트웨어 실행 유닛도 들어가있어 로컬과 격리된 상태에서 이미지를 기반으로 실행됨

  • 이미지: 코드와 코드를 실행하는데 필요한 도구와 모든 설정 명령이 들어있는 공유 가능한 패키지

즉 간단히 말해서 컨테이너는 이미지의 구체적인 실행 인스턴스라는것.

docker hub

  • Docker hub: 이미지를 공유하는 공간으로, 여기서 필요한 이미지를 다운받아 사용할 수 있음

docker run [사용하고싶은 이미지 이름]를 입력하면 docker hub에서 이미지를 찾아서 해당 이미지를 기반으로 컨테이너를 만들고 실행함.

docker run -it [이미지]는 node같이 쉘(shell)같은 cli를 사용해야될때 컨테이너를 종료하지 않고 터미널의 입력을 대화형 세션으로 노출하겠다는 의미임.

docker ps -a로 도커가 지금까지 생성하고 종료한 모든 컨테이너를 볼 수 있음.

만약 로컬에 node v11버전이 설치되어있고 docker hub로 받은 node 이미지는 v14버전이라면, 해당 node 이미지를 컨테이너로 실행하면 로컬과 격리되어 실행되므로 로컬 상관없이 v14가 돌아감을 알 수 있다.

0개의 댓글