I want to run a role on docker container .How can i achieve it ??
Any syntax of command will be helpful.
Run Code Online (Sandbox Code Playgroud)
刀引导-x -P像这样
Thanks
Run Code Online (Sandbox Code Playgroud)
拥有一个具有ssh访问权限的容器,您可以使用knife bootstrap.例如:
CONTAINER=$(docker run -d -e ROOT_PASS="mypass" tutum/ubuntu:trusty)
CONTAINERIP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${CONTAINER})
knife bootstrap $CONTAINERIP -x root -P mypass --sudo -r 'role[myrole]'
Run Code Online (Sandbox Code Playgroud)
第一行将运行一个docker容器(image tutum/ubuntu:trusty),启用ssh守护程序,root ssh密码设置为"mypass".该图像的CONTAINER_ID由docker run命令返回并保存到CONTAINER变量.
第二个命令将使用此CONTAINER_ID获取分配给此conteiner的IP地址,并将其保存到CONTAINERIP变量.
第三个命令引导容器中的chef,使用$ CONTAINERIP变量来引用它的ip,以及容器的ssh凭据.这项工作假设您已正确配置刀具.
关于SSH的注意事项:您使用的容器必须运行守护程序ssh.在docker docs中有对此的引用(http://docs.docker.com/examples/running_ssh_service/).Docker hub中还有很多图像(如示例中的tutum/ubuntu:trusty).
关于暴露SSH端口的注意事项:如果您的厨师工作站(配置了刀具的工作站)不是运行容器的工作站,您可以将ssh端口暴露给主机的一个,然后访问您的HOST_IP到该端口.例如:
CONTAINER=$(docker run -d -p 2222:22 -e ROOT_PASS="mypass" tutum/ubuntu:trusty)
knife bootstrap $HOST_IP -p 2222 -x root -P mypass --sudo -r 'role[myrole]'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1287 次 |
| 最近记录: |