介绍几个简单的docker 命令:
docker images#显示当前的镜像列表
docker pull <image>#下载官方纯净版本的镜像 eg:docker pull ubuntu#下载Ubuntu的最新版本的最小镜像(纯净)
docker push <image>#上传自己的镜像到官网
docker run <image>#以当前镜像为模板运行一个容器
docker ps#显示当前的运行的容器
docker logs <container>#在执行docker run命令之后,可以通过该命令查询相应的输出docker rm <container>#移除当前不运行的容器
docker rmi <image>#移除选中的镜像
docker commit <container> <image>#将运行容器刻录为镜像
上面介绍的命令足够我们完成下面的例子:
$docker run -it --name hello ubuntu echo "hello world!"
hello world!
$docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99f10f31838f ubuntu:latest "echo 'hello world!' 6 seconds ago Exited (0) 5 seconds ago hello
这样成功的完成了第一个例子,接下来在docker中部署一个js应用
1、$docker pull fedora#这是从官网下载一个纯净的镜像
2、$docker images#显示你当前有的镜像
3、$docker run -it fedora /bin/bash #运行一个交互的容器4、root@*******:/#yum install npm #Fedora Docker镜像安装Node
5、 root@*******:/#npm install express -g#安装Express 框架6、 root@*******:/#exit#退出容器7、$docker commit ****** yourname/fedora#将当前的容器保存为镜像,以便后续使用
$docker images #这样你的镜像就多了yourname/fedora这一项
接下来,你在的主机创建/src/webapp这样一个目录
具体操作:
$sudo mkdir -p /src/webapp
$sudo cd /src/webapp
$sudo gedit app.js
在弹出的编辑框中填入以下内容:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337); //注意这边不能和官网示例那样监听127.0.0.1 console.log('Server running at http://0.0.0.0:1337/');
#保存并退出
现在我们已经把我们需要的东西都准备好了,镜像 yourname/fedora;待部署文件 /src/webapp/app.js
现在我们就部署我们第一个web应用:
$docker run -i -d -p 1337:1337 --name nodeapp -v /src/webapp:/var/webapp yourname/fedora node /var/webapp/app.js得到一串container id ******
#这样你就后台运行一个容器,这个容器监听主机的1337号端口
$docker port nodeapp #查看当前容器的端口映射1337/tcp ->0.0.0.0:1337 #该容器监听主机的1337端口号最后可以通过浏览器访问 http://localhost:1337 或者 在终端输入 curl http://localhost:1337输出:Hello World