"แฎแแแฉแฐแฌ แแญ แญแฐแซ แแ แญ!" แฅแแ แฐแธแแจแ แณแแแแ ? Docker แซ แฝแแญ แแฝแ แซแตแแฃแแ!
Docker โ App แ แแแ dependencies แแญ แ แแ
แถ Container แแตแฅ แซแฝแแแข
แซ Container แแแแแ แฎแแแฉแฐแญ แแญแ server แแญ แฐแแณแณแญ แแ แญแฐแซแแ!
แแแ แฅแ
แ: "แฎแแแฉแฐแฌ แแญ แญแฐแซ แแ แญ โ server แแญ แ แญแฐแซแ!" แจแแฃแแ แฝแแญ
แแแแแแ แญแ แแแ!
Docker แ แแแจแณแต แแแแน 4 แแแต แแธแ โ Image, Container, Dockerfile, Docker Hubแข แฅแแแ แ แซแแ แ Docker แแ แแแ แซแแ !
Image vs Container โ แแแ แแณแ:
๐ Image = แจแแ Recipe (แแแแ แฐแฅแฐแญ) โ แแ แแ ingredients แ แแ? แฅแแดแต แญแฐแซแแ?
๐ Container = แซ Recipe แฒ run แฒแแ แจแแแฃแ แแ! แฅแ แแ แฐแญแถ แฅแ แแ แแแฃแต แญแปแแแ!
โ
แ แแต Image โ แฅแ Containers!
Dockerfile โ Image แ แแแตแซแต step-by-step instructions แซแแ แต แแญแ แแ! Chef แ Recipe แฒแฝแ แฅแแฐ แแญแแฑ! Node.js App แ แ Docker แแแแแแต แญแปแแแแข
# Step 1: Base image แแจแฅ (Node.js แซแแ แต) FROM node:18-alpine # alpine = แแแ แซแ Linux version # Step 2: Working directory แแตแ WORKDIR /app # Container แแตแฅ /app folder แแตแฅ แแ แญแแแฃแแ # Step 3: package.json copy แ แตแญแ (dependencies แ install) COPY package*.json ./ # Step 4: Dependencies install RUN npm install # RUN = Image แต build แแ แญแฐแซแแ # Step 5: แแแ code copy แ แตแญแ COPY . . # Step 6: แแ port แญแ แแแแ? EXPOSE 3000 # Step 7: App แ แฅแแดแต แแแญ? CMD ["node", "server.js"] # CMD = Container แฒ start แฒแแ แญแฐแซแแ
Dockerfile แแแ keywords โ แแ แซแฐแญแแ?
MERN app แตแตแฐแซ 3 แแแฎแฝ แซแตแแแแแ โ React (frontend), Node.js (backend), MongoDB (database)แข
Docker Compose แแแแ แ แฅแฎ แ แ แแต command แซแตแแแญแแ!
docker compose up แฅแป!
version: '3.8' services: # โโ Frontend โ React โโโโโโโโโโโโโโโโโโโโโโโโโ frontend: build: ./client ports: - "3000:3000" depends_on: - backend # backend แจแแแจ แ แแ แฅแป แแแญ # โโ Backend โ Node.js/Express โโโโโโโโโโโโโโโโ backend: build: ./server ports: - "5000:5000" environment: - DATABASE_URL=mongodb://mongo:27017/ethiocode - JWT_SECRET=mysecretkey depends_on: - mongo # โโ Database โ MongoDB โโโโโโโโโโโโโโโโโโโโโโโ mongo: image: mongo:6 # Docker Hub แจ MongoDB image แญแแญแณแแ ports: - "27017:27017" volumes: - mongo_data:/data/db # data แแ แญแแแฃแแ โ container แขแแแ! volumes: mongo_data:
Docker Simulator! Containers แแ แญแณแซแแ โ แแแญ/แ แแ/แฐแญแ! Commands แแญแญ!
docker run command simulate แซแฐแญแแแ! Image แแจแฅแฃ port แปแ โ Container แญแฐแซแแ!
docker compose up โ แแแ MERN services แ แฅแฎ แแแญ!
แ แแต command โ frontend, backend, database แแ แญแฐแซแแ!
"แฎแแแฉแฐแฌ แแญ แฅแป แญแฐแซแแ!" แแแแแแ แญแ แแแ! Container แแแ แฆแณ แ แแต แแ แญแฐแซแแ!
Dockerfile แ แปแ โ docker build โ Image แฐแฐแซ โ docker run โ Container แญแฐแซแแ!
แ แฐแ แฐแจแฐแ แญแ แแ! FROM=base image, RUN=install, CMD=app แ แแแญ!
MERN app แ docker compose up แ แแต command แฅแป โ frontend, backend, DB แแ แญแแแซแ!
Docker แ CI/CD pipeline แแญแฅ แแ! GitHub Actions แแญ แฐแญแฐแ auto-deploy แแตแจแ แญแปแแแ!
CMD แแ แแ แญแฐแซแแ?