41 lines
1.9 KiB
Markdown
41 lines
1.9 KiB
Markdown
# What is Node.js?
|
|
|
|
Node.js is a software platform for scalable server-side and networking applications. Node.js applications are written in JavaScript and can be run within the Node.js runtime on Mac OS X, Windows, and Linux without changes.
|
|
|
|
Node.js applications are designed to maximize throughput and efficiency, using non-blocking I/O and asynchronous events. Node.js applications run single-threaded, although Node.js uses multiple threads for file and network events. Node.js is commonly used for real-time applications due to its asynchronous nature.
|
|
|
|
Node.js internally uses the Google V8 JavaScript engine to execute code; a large percentage of the basic modules are written in JavaScript. Node.js contains a built-in, asynchronous I/O library for file, socket, and HTTP communication. The HTTP and socket support allows Node.js to act as a web server without additional software such as Apache.
|
|
|
|
> [wikipedia.org/wiki/Node.js](https://en.wikipedia.org/wiki/Node.js)
|
|
|
|
%%LOGO%%
|
|
|
|
# How to use this image
|
|
|
|
## Create a `Dockerfile` in your Node.js app project
|
|
|
|
```dockerfile
|
|
FROM node:4-onbuild
|
|
# replace this with your application's default port
|
|
EXPOSE 8888
|
|
```
|
|
|
|
You can then build and run the Docker image:
|
|
|
|
```console
|
|
$ docker build -t my-nodejs-app .
|
|
$ docker run -it --rm --name my-running-app my-nodejs-app
|
|
```
|
|
|
|
### Notes
|
|
|
|
The image assumes that your application has a file named [`package.json`](https://docs.npmjs.com/files/package.json) listing its dependencies and defining its [start script](https://docs.npmjs.com/misc/scripts#default-values).
|
|
|
|
## Run a single Node.js script
|
|
|
|
For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Node.js script by using the Node.js Docker image directly:
|
|
|
|
```console
|
|
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app -w /usr/src/app node:4 node your-daemon-or-script.js
|
|
```
|