ubuntu docker开启后自动执行的启动脚本

创建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
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容