Pages

Tuesday, 19 April 2016

docker lxc类型容器自启动以及启动自动执行命令

我们的容器采用的是lxc类型,一是为了固定ip,二是避开iptable类型转发的方式。因为我们是强网络环境,网络工程师对网络的规划和管控非常强。
这种方式下启动lxc容器倒是很好办,直接编辑/etc/rc.d/rc.local
docker start jko2o-16-13-49  
docker start vis-16-13-51  
docker start vis-16-13-50  
docker start vis-16-13-48  
docker start vis-16-13-47  
就可以启动容器了。
容器内我们是采用supervisord来保持容器不自动销毁的,那么其他命令如果都加入supervisord,那会非常麻烦。
简单化,用lxc-execute来执行,比较麻烦的就是需要查出来lxc容器的名字,用以下命令查出jko2o-16-13-49的全名:
docker inspect -f '{{.Id}}' jko2o-16-13-49  
ebe2e6a1249f6f22334014b0072186dfaee52173f3df06cd826f9e64e7d4c51f  
然后编辑/etc/rc.d/rc.local,用lxc-execute执行命令:
#47
lxc-execute -n e223d81ea73551460b82e1977b92ef07e24437cd1f4494470feafd4ff455104b -- service mysqld start  
lxc-execute -n e223d81ea73551460b82e1977b92ef07e24437cd1f4494470feafd4ff455104b -- service httpd start  
#48
lxc-execute -n 1075971953b9c79494509bf89131e03bbd5ab0b9a388217bd9b6de7a553016a5 -- //www/wdlinux/init.d/mysqld start  
lxc-execute -n 1075971953b9c79494509bf89131e03bbd5ab0b9a388217bd9b6de7a553016a5 -- //www/wdlinux/init.d/httpd start  
lxc-execute -n 1075971953b9c79494509bf89131e03bbd5ab0b9a388217bd9b6de7a553016a5 -- //www/wdlinux/init.d/wdapache start  
lxc-execute -n 1075971953b9c79494509bf89131e03bbd5ab0b9a388217bd9b6de7a553016a5 -- //www/wdlinux/init.d/nginxd start  
lxc-execute -n 1075971953b9c79494509bf89131e03bbd5ab0b9a388217bd9b6de7a553016a5 -- //www/wdlinux/init.d/pureftpd start  
#49
lxc-execute -n ebe2e6a1249f6f22334014b0072186dfaee52173f3df06cd826f9e64e7d4c51f -- /export/servers/nginx178/sbin/nginx  
#50
lxc-execute -n 5b7e8cd3130d31bae5b089202c7e2092b9daca5f19cc055ce4ee50cf8b789504 -- /export/servers/tomcat/tomcat.sh