$ docker run -it --name nodejs-alpine --rm alpine:3.10
--name -> giving custom name
-it -> interactive tty
--rm -> removes metadata after container is killed or exited
$ docker run -it --detach --name nodejs-alpine --rm alpine:3.10
or,
$ docker run -dit --name nodejs-alpine --rm alpine:3.10
$ docker kill $(docker ps -q)
$ docker image rm <image-name>
or,
$ docker rmi node:latest --force
$ docker rmi $(docker images -aq)
$ docker container prune
$ docker image prune
$ docker search python
$ docker run -it node:14-stretch
This run a Node REPL by default but if you want to run bash then
$ docker run -it node:14-stretch bash
$ docker run -it node:14-stretch cat /etc/issue
$ docker run -it node:14-stretch node -v
$ docker run -it node
or,
$ docker run -it node:latest
FROM node:14-stretch
CMD ["node","-e","conosle.log(\" Hi there \")"]
$ docker build .
$ docker build --tag my-node-app .
or,
$ docker build -t my-node-app .
// index.js
const http = require("http");
http
.createServer(function(request, response) {
console.log("request received");
response.end("omg hi", "utf-8");
})
.listen(3000);
console.log("server started");
// Dockerfile
FROM node:14-stretch
COPY index.js index.js
CMD ["node", "-e", "index.js"]
$ docker build -t my-node-app .
$ docker run --init --rm -p 3000:3000 my-node-app
--init -> tini package for listening Ctrl+C commnad
--rm -> remove data after contianer is killed
-p -> public (network sharing)
$ docker build -t my-node-app -f dev.Dockerfile