🌟 해당 내용은 얄팍한 코딩사전님의 가장 쉽게 배우는 도커 의 실습 예제를 토대로 정리한 문서입니다 🌟
또한, 맥을 기준으로 설명하고 있는 점 참고 부탁드립니다.
프론트 는 node.js 을 백엔드는 python 을 데이터베이스는 mysql 을 사용합니다.
docker 공식 홈페이지 에서 Docker Desktop 을 다운로드 해줍니다.
다운로드 후 설치를 해준다음 나오는 알럿 창을 따라 해주면 됩니다
터미널에서 docker --version
을 실행했을 때 버전이 정상적으로 나오면 docker 설치가 정상적으로 된 겁니다.
docker 실습할 폴더를 만들어준 다음 예제 코드를 준비합니다.
얄팍한 코딩 사전님의 gitlab -> https://gitlab.com/yalco/practice-docker 에서 다운로드 해주겠습니다.
아래 명령어를 실행해주세요.
git clone https://gitlab.com/yalco/practice-docker.git
docker-compose up
으로 바로 실행시켜줄 수 있지만,,, 처음부터 차근차근 살펴보겠습니다. 👩💻
실제 예제를 실행하기 전 node 이미지를 실행해보고 어떻게 작동하는지 알아 보겠습니다.
node 가 현재 컴퓨터에 깔려 있지 않는 상태라고 가정하겠습니다.
먼저, docker hub 에서 node 이미지를 찾아줍니다.
docker run -it node
해당 명령어를 실행해서 node 이미지를 실행해줍니다.
🚨 docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
가 발생하는 경우 처음에 다운 받았던 Docker Desktop 을 실행하고 해주면 됩니다.
현재 로컬에 node 이미지가 있다면 해당 이미지를 실행해주고 없는 경우 docker hub 에 있는 node 이미지를 실행시켜줍니다.
해당 명령어를 실행하면 -it 명령어로 인해서 콘솔창이 뜨게 되는데 현재 컴퓨터에 노드가 깔려있지 않는다고 하더라도 node 관련 명령어들을 사용할 수 있습니다.
노드 이미지 실행 여부 확인
docker images
를 실행하면 아래 사진 처럼 node 이미지가 실행되고 있는 걸 확인 할 수 있습니다.
컨테이너 작동 확인
docker ps
를 실행하면 임의로 이름이 지어진 컨테이너가 작동하고 있다는 걸 확인 할 수 있습니다.
다시 예제로 돌아와 폴더들을 살펴보면 Dockerfile 이라는 파일이 있는 걸 확인할 수 있습니다
Dockerfile 은 이미지를 만들기 위한 설계도로 이미지 관련 설정들이 저장되어 있습니다.
각 폴더에 들어가서 원하는 이미지 명으로 docker 를 실행해주면 Dockerfile 이미지를 기준으로 docker 가 실행됩니다.
docker build -t #{이미지명} .
하지만 매번 각각 이미지를 다운 받고 적절한 명령어로 실행하는 건 어려움이 크기 때문에 한번에 실행할 수 있는 보통 docker compose 를 사용합니다.
❓ docker compose 란 ?
여러 컨테이너를 자동으로 구축, 실행하여 관리를 최소화할 수 있는 기능입니다.
실행 방법은 다음과 같습니다.
1) 각각의 컨테이너에 Dockerfile 을 작성
2) docker-compose.yml 을 작성하고, 컨테이너의 실행 정의
3)docker-compose up
명령어로 docker-compose.yml 에 정의한 컨테이너를 실행
docker-compose up
해당 명령어를 실행하고 정상적으로 프로그램이 작동하는 걸 확인합니다.