Docker Basics Tutorial with Node.js Learn the fundamentals of Docker by containerizing a Node.js app 172 words. By Jeff Delaney Created Aug 24, 2020 Last Updated Aug 24, 2020 Code Slack #docker #node Code Breakdown Dockerfile A Dockerfile is like DNA for building a Docker Image. file_type_docker Dockerfile FROM node:12 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . ENV PORT=8080 EXPOSE 8080 CMD [ "npm", "start" ] Dockerignore A Dockerignore file is required so we don’t add the node_modules folder to the image. file_type_docker .dockerignore node_modules Node.js App This is the code we went to run as the container’s process. file_type_js_official src/index.js const app = require('express')(); app.get('/', (req, res ) => res.json({ message: 'Docker is easy 🐳' }) ); const port = process.env.PORT || 8080; app.listen(port, () => console.log(`app listening on http://localhost:${port}`) ); Commands Build the Image command line docker build -t fireship/demoapp:1.0 . Run the Container This maps the local port 5000 to the docker port 8080. You should be able to view the app on your local system at https://localhost:5000. You can choose any port you want. command line docker run -p 5000:8080 <image-id> Docker Compose Docker Compose makes it easy to manage multiple containers and volumes. file_type_light_yaml docker-compose.yml version: '3' services: web: build: . ports: - "8080:8080" db: image: "mysql" environment: MYSQL_ROOT_PASSWORD: password volumes: - db-data:/foo volumes: db-data: Run multiple Containers command line docker-compose up Docker in 100s