如何在docker里部署nodejs

如题所述

下载镜像,安装环境
我们先执行如下命令,启动虚拟机:
$ boot2docker start
2014/08/18 21:22:41 Waiting for VM to be started...
...........
2014/08/18 21:23:21 Started.
2014/08/18 21:23:21 Docker client does not run on Windows for now. Please use
2014/08/18 21:23:21 "boot2docker" ssh
2014/08/18 21:23:21 to SSH into the VM instead.

如果我们的物理机内存低于4G,那么跑这个boot2docker可能需要手动设置内存占用大小:
$ boot2docker start -m=512

我们利用命令就可以进入linux虚拟机了
$ boot2docker ssh
boot2docker: 1.1.2
master : 740106c - Thu Jul 24 03:24:10 UTC 2014

执行 docker 命令,会有一个命令列表,里面列出了所有 docker 支持的功能,列表如下:
Commands:
attach Attach to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
... ...

下面会对一些常用的命令进行示例说明,我们可以通过如下命令,先查找centos的镜像,并把他下载下来
$ docker search centos #查找centos名字的镜像
$ docker pull centos #下载官方纯净版本的centos镜像

在调用search命令时,你会看到有好多centos包,他们都是这样的<username>/<image_name>,这些不在根目录的镜像都是非官方的,是其他用户提交到docker hub上去的,耐心等待片刻我们就可以将centos的镜像拉下来了。
如果脸黑,镜像又不幸被墙,那么试试加上下面的hosts:
54.234.135.251 get.docker.io
54.234.135.251 cdn-registry-1.docker.io

成功下载好centos镜像之后,我们可以利用如下命令来查看镜像列表:
$ docker images
REPOSITORY TAG IMAGE ID CREATED
VIRTUAL SIZE
centos centos6 b1bd49907d55 2 weeks ago
212.5 MB
centos centos7 b157b77b1a65 2 weeks ago
243.7 MB
centos latest b157b77b1a65 2 weeks ago
243.7 MB

接下来我们就利用centos7这个镜像输出一段 hello world
$ docker run b15 /bin/echo 'Hello world'
Hello world

注意这里的 b15,他表示centos7这个images的id,不用全部打全,只要保证输入的id前几位能找到唯一镜像即可,这点很赞。
稍微复杂一点的例子:
$ docker run -i -d -t b15 /bin/sh -c "while true; do echo hello world; sleep 1; done"

-i表示同步container的stdin,-t表示同步container的输出,-d表示deamon,以后台启动这个container,执行这个container是永远不会停止的,每一秒钟都会输出hello world。
至于什么是container,container和image的关系我们下一段再说,列出镜像的历史:
$docker history image_name
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答