概要
今さら知ったのですが、OSS系のDockerイメージを起動するとワークユーザ(root以外)で実行されることあると思います。そんな時にdocker exec
でパッケージをインスコしようとすると権限がないぞ!って怒られることがありませんか?
結局rootのパスワードがわからないし、sudoも入っていなかったりするのでDockerfileからイメージをビルドするしかありません。。。
解決策
docker execコマンドのオプションの-u
でユーザ名もしくはuidを指定することで、そのユーザでコマンドを実行することができます
もっと早く知ってれば・・・
> docker exec -i -u root centos yum update -y