DevOps
Building and Managing Docker Images Locally
Introduction
We’ll create a simple app, build a Docker image, and manage it locally. We’ll use Node.js for our example app. Let’s build something!
Step 1: Create a Sample App
Create a directory my-app and add these files:
server.js:
const http = require('http');const hostname = '0.0.0.0';const port = 3000;const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello, World!\n');});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);});
package.json:
{"name": "my-app","version": "1.0.0","main": "server.js","dependencies": {"http": "^0.0.1-security"}}
Step 2: Write a Dockerfile
FROM node:20-alpineWORKDIR /appCOPY package*.json ./RUN npm installCOPY . .EXPOSE 3000CMD ["node", "server.js"]
This uses a base Node image, copies files, installs deps, and runs the server.
Step 3: Build and Run the Image
Build:
docker build -t my-app .
Run:
docker run -d -p 3000:3000 my-app
Visit http://localhost:3000—see "Hello, World!"
Step 4: Managing Images
- List: docker images
- Remove: docker rmi my-app
- Multi-stage build example (for optimization):
FROM node:20-alpine AS builderWORKDIR /appCOPY package*.json ./RUN npm installCOPY . .RUN npm run build # If applicableFROM node:20-alpineWORKDIR /appCOPY --from=builder /app .CMD ["node", "server.js"]
Ready to transform your business with our technology solutions? Contact Us today to Leverage Our DevOps Expertise.
Comment