安装Docker:
docker常用命令:
运行Hadoop镜像:
sudo apt-get install curl
curl -fsSL https://get.docker.com/ | sh
然后根据提示把自己的账户加到docker的组里, 这样以后运行docker命令时就不必前缀sudo了
测试docker是否成功运行(先重启一下机器)
docker version
docker常用命令:
docker images
docker images ls
docker rmi IMAGE #删除镜像
docker rm $(docker ps -a -q) #删除所有容器
docker tag IMAGE NAME #docker tag 73e docker-hadoop
docker pull NAME[:TAG]
docker run -it NAME PARAM
docker ps
docker kill NAME
docker inspect NAME
docker export -o name.tar CONTAINER #持久化容器
docker import name.tar
docker cp ~/shared/hadoopexample.jar eca5731af74b:/usr/local/hadoop-2.7.0/bin #在本机和container间传文件
容器是运行中(或暂停)的镜像, 有点象面向对象编程中类和实例的关系. 注意一般使用quit()或docker kill命令退出容器后,容器并没有自动删除而是进入stop状态.
安装Hadoop镜像
docker pull sequenceiq/ubuntu-docker
运行Hadoop镜像:
docker run -it sequenceiq/ubuntu-docker /etc/bootstrap.sh -bash
接下来可以使用 docker inspect 命令查看运行的镜像的详细信息,比如其IP地址,开放的端口, 对于Hadoop来说可以用浏览器访问镜像的 8088 和 50070 端口, 可以看到这个镜像是一个只有一个datanode的hadoop集群.
最后简单记述下docker run命令的一些参数的含义:
--link 这个命令在两个容器间建立起通信链接, 参见:http://www.oschina.net/translate/dockerlinks
-p 把容器的端口和真实主机的端口绑定
-i 容器启动后不会自动退出,会等待交互(interactive)
-t --tty=true|false 是否分配一个伪终端
-d 后台运行
--name 指定一个名字,否则系统会默认分配一个
之后在命令行里操作hadoop需要先运行下面的脚本添加一些系统变量
echo "export HADOOP_HOME=/usr/local/hadoop-2.7.0">>/etc/profile
source /etc/profile