创建docker的时候指定启动命令
用/bin/bash -c指定用户开机执行命令,注意如果指定了用户,要注意是否需要sudo权限.
docker run -itd -v /sda/fux:/sda/fux --user fux:fux --privileged --hostname ubuntu14 --name ubuntu14 --net bridgemacvlan --ip=192.168.1.200 --restart=always ubuntu1404:v2 /bin/bash -c "/etc/init.d/myinit.sh;/bin/bash"
创建脚本
创建脚本: vi /etc/init.d/myinit.sh
#!/bin/bash
echo "test"
echo "111" >> a.c
service ssh restart
/etc/init.d/php-fpm-80 start
/etc/init.d/pure-ftpd start
/etc/init.d/nginx start
/etc/init.d/mysqld start
/etc/init.d/bt stop
/etc/init.d/bt start
/etc/init.d/redis start
ifdown eth0
ifup eth0
/usr/local/frp/frpc -c /usr/local/frp/frpc.toml &
添加权限
chmod +x /etc/init.d/myinit.sh
需要用到sudo权限
使用 expect
脚本:expect
是一个自动化交互式应用程序的工具,可以用来自动输入密码。
安装expect: sudo apt-get install expect
创建脚本和权限如上面不要sudo权限的操作一样
#!/usr/bin/expect -f
set timeout -1
set password "fux"
spawn echo "ubuntu1404 up start" >> ~/a.c
spawn sudo service ssh restart
expect "password for" {
send "$password\r"
expect eof
}
spawn sudo /etc/init.d/samba restart
expect "password for" {
send "$password\r"
expect eof
}
spawn echo "ubuntu1404 up... end" >> ~/a.c
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容