Kubernetes中如何在kubectl run启动镜像后执行指定命令
解决方法
你可以通过bash -c参数将多条apt命令拼接传入,有两种常见使用场景:
场景1:执行完apt命令后直接退出容器
不需要保留交互式终端的话,直接用如下命令即可:
kubectl run -i --tty ubuntu1 --image=ubuntu --restart=Never -- bash -c "apt update && apt install -y mysql-server"
场景2:执行完apt命令后保留交互式shell
如果你安装完成后还需要留在容器内操作,可以在命令最后追加bash:
kubectl run -i --tty ubuntu1 --image=ubuntu --restart=Never -- bash -c "apt update && apt install -y mysql-server; bash"
注意事项
- 必须给
apt install添加-y参数,跳过安装过程中的交互确认步骤,否则命令会卡住无法自动执行 - 如果不需要交互式操作,可以去掉命令中的
-i --tty参数,让容器后台运行 - 官方ubuntu镜像默认没有预加载安装源缓存,必须先执行
apt update再执行安装,否则会出现找不到mysql-server安装包的报错
内容的提问来源于stack exchange,提问作者jack
相关产品推荐
相关产品推荐

