Posted at

意外と忘れがち?コンテナのrootユーザのパスワードを知らなくてもrootユーザで実行する方法


概要

 今さら知ったのですが、OSS系のDockerイメージを起動するとワークユーザ(root以外)で実行されることあると思います。そんな時にdocker execでパッケージをインスコしようとすると権限がないぞ!って怒られることがありませんか?

結局rootのパスワードがわからないし、sudoも入っていなかったりするのでDockerfileからイメージをビルドするしかありません。。。


解決策

docker execコマンドのオプションの-uユーザ名もしくはuidを指定することで、そのユーザでコマンドを実行することができます

もっと早く知ってれば・・・

https://docs.docker.com/engine/reference/commandline/exec/

> docker exec -i -u root centos yum update -y