Docker Nova Driver实践
2015-06-12 15:52
543 查看
http://docs.docker.com/installation/ubuntulinux/
配置文件修改:
# nova.conf [Default] compute_driver=novadocker.virt.docker.DockerDriver [docker] inject_key = True #允许注入ssh公钥 # glance-api.conf container_formats=ami,ari,aki,bare,ovf,ova,docker $ git clone https://github.com/stackforge/nova-docker $ sudo cp nova-docker/etc/nova/rootwrap.d/docker.filters /etc/nova/rootwrap.d/docker.filters
重启glance-api, nova-compute
修改代码
默认情况下启动bash需要tty,不然启动的container会马上exit;nova-compute会报错:InstanceDeployFailure : Cannot setup network: Cannot find any PID under
container 如果指定了启动命令(见步骤6)则不需要做修改… $ vim novadocker/virt/docker/driver.py spawn()函数args加入tty: true如下:
args = {
'hostname': instance['name'] ,
'mem_limit': self._get_memory_limit_bytes(instance),
'cpu_shares': self._get_cpu_shares(instance),
'network_disabled': True,
'tty': True,
}
已经提交patch至社区: Specify
tty=true when creating container
docker镜像
$ docker pull ubuntu
$ docker save ubuntu | glance image-create --is-public=True --container-format=docker --disk-format=raw --name ubuntu
镜像安装ssh
$ docker run -it ubuntu /bin/bash
#创建docker container
# apt-get install openssh-server
再开一个终端docker ps找到container id
$ docker commit <container ID> ubuntu:ssh
上传新镜像
$ docker save ubuntu:ssh | glance image-create --is-public=True --container-format=docker --disk-format=raw --name ubuntu:ssh
nova启动ssh-server container
默认情况下nova启动的container会执行bash,如果需要指定命令可以通过glance image的os_command_line属性指定,这样通过更新的image启动container就会执行相应的命令:如sshd服务: glance image-update --property os_command_line='/usr/sbin/sshd -D’ <Glance Image ID>
bash into a running container
$ docker exec -it <Container ID> /bin/bash
相关文章推荐
- Docker的安装使用-第1章
- Docker学习
- 浅谈Docker隔离性和安全性
- 如何在 Docker 容器之间设置网络
- docker “FATA[0162] ... connection timed out" 错误改正方法
- zabbix企业应用之监控docker容器资源情况
- 基于Mesos和Docker的分布式计算平台
- 基础的 Docker 容器网络命令
- 基础的 Docker 容器网络命令
- docker运行报错Get http:///var/run/docker.sock/v1.18/containers/json?all=1:
- 初识docker(一)
- mac 下docker得端口转发
- 创建尽可能小的 Docker 容器
- 使用Docker做开发的建议团队工作流
- docker高级应用之cpu与内存资源限制
- Docker中的一些命令
- 学习docker(二)
- Ubuntu14.04(32位)下安装使用docker
- docker实战之centos6.5上安装、镜像、容器相关操作
- Docker部署IPython