Docker 컨테이너 실행부터 Dockerfile 작성
![KUKJIN LEE's profile picture](/_next/image?url=%2Fassets%2Fdeveloper%2Fkukjin.png&w=48&q=75)
KUKJIN LEE • 1일 전 작성
Docker 컨테이너 실행 및 관리
Docker 컨테이너는 이미지를 기반으로 실행됩니다.
Docker Hub에는 다양한 이미지가 제공되며, 가져와 실행할 수 있습니다.
🔹 첫 번째 컨테이너 실행하기
docker run hello-world
✅ 실행 결과
Docker가 hello-world
이미지를 찾고 없다면 자동으로 다운로드한 후 실행합니다.
이제 컨테이너가 정상적으로 동작하는지 확인!
🔹 실행 중인 컨테이너 확인
docker ps
이 명령어를 사용하면 현재 실행 중인 컨테이너 목록을 확인할 수 있습니다.
🔹 컨테이너 중지 및 삭제
# 컨테이너 중지
docker stop 컨테이너_ID
# 컨테이너 삭제
docker rm 컨테이너_ID
Dockerfile 작성 및 실행
Dockerfile은 컨테이너를 빌드하는 기초 파일 입니다.
간단한 웹 서버를 실행하는 컨테이너를 통해 확인해보죠~
🔹 간단한 Node.js 웹 서버 만들기
먼저, 프로젝트 폴더를 만들고 이동합니다.
mkdir my-docker-app && cd my-docker-app
🔹 Dockerfile
작성
Dockerfile
을 만들고 아래 내용을 작성합니다.
# 1. Node.js 공식 이미지를 기반으로 사용
FROM node:18
# 2. 컨테이너 내 작업 디렉토리 설정
WORKDIR /app
# 3. 애플리케이션 파일 복사
COPY . .
# 4. 패키지 설치
RUN npm install
# 5. 컨테이너 시작 시 실행할 명령어
CMD ["node", "server.js"]
🔹 간단한 server.js
파일 생성
Dockerfile과 같은 폴더에 server.js
파일을 만들고 다음 코드를 추가합니다.
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello from Docker!');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000');
});
🔹 Docker 이미지 빌드
이제 위의 Dockerfile
을 사용해 이미지를 빌드합니다.
docker build -t my-docker-app .
이 명령어를 실행하면 my-docker-app
이라는 이름으로 Docker 이미지가 생성됩니다.
🔹 컨테이너 실행
만든 이미지를 기반으로 컨테이너를 실행합니다.
-p 3000:3000
에서 앞쪽(호스트 포트)과 뒤쪽(컨테이너 포트) 두 개의 포트를 적는 이유는 호스트(로컬 머신)와 컨테이너 간의 포트 매핑을 설정하기 위해서입니다.
docker run -p 3000:3000 my-docker-app
✅ 실행 후 http://localhost:3000
에 접속하면 "Hello from Docker!" 메시지를 확인할 수 있습니다! 🚀