All technological notes.
| Command | Description |
|---|---|
docker compose up |
Create and start containers |
docker compose up -d |
Detached mode: Run containers in the background |
docker compose up --build |
Build images before starting containers |
docker compose down |
Stop and remove containers, networks |
Count number of visit
solution 1:
Solution 2:
package.json{
"dependencies": {
"express": "*",
"redis": "2.8.0"
},
"scripts": {
"start": "node index.js"
}
}
index.jsconst express = require("express");
const redis = require("redis");
const app = express();
// specify the redis container by it name defined in the docker compose file
const client = redis.createClient({
host: "redis-server",
port: 6379, // default port for redis
});
client.set("visits", 0);
app.get("/", (req, res) => {
client.get("visits", (err, visits) => {
res.send("Number of visits is " + visits);
client.set("visits", parseInt(visits) + 1);
});
});
app.listen(8081, () => {
console.log("Listening on port 8081");
});
Dockerfile# base image
FROM node:alpine
# install dependencies
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
# startup commands
CMD ["npm", "start"]
docker-compose.ymlservices:
redis-server:
image: "redis"
node-app:
build: .
ports:
- "8081:8081"
docker compose up
docker compose up -d
docker ps
docker compose down
docker ps