1. ホーム
  2. docker

[解決済み] アルパインイメージでdockerを使ってbashをユーザrootで実行するには? su: suidでないと正常に動作しません。

2022-01-29 22:27:24

質問内容

編集してください。 答えはとても明確です。フラグを使用することができます。 --user root コンテナに入るとき

docker exec -it --user root mycontainername bash                 or sh


あるサービス(Kong API Gateway)用にこの公式Docker Hubの1.5.0-alpineイメージをダウンロードしたところ、例えばnanoをインストールするためのapkコマンドを実行できなくなったのですが、どうすればよいでしょうか?

以前は、コンテナに入るだけでよかったのですが

docker exec -it kong sh 

または

docker-compose exec kong sh

といったコマンドを実行することができました。 apk update または apk add nano といった具合に。

しかし、現在は以下のようなエラーが発生します。

$ apk update                                                                                                                                   
ERROR: Unable to lock database: Permission denied                                                                                                
ERROR: Failed to open apk database: Permission denied

$ apk add nano
ERROR: Unable to lock database: Permission denied
ERROR: Failed to open apk database: Permission denied

sudoやsuも実行してみましたが...。しかし、私は

$ su
su: must be suid to work properly
$ su root
su: must be suid to work properly
$ suid
sh: suid: not found

本当に自分でカスタムイメージを作る必要があるのでしょうか?公式のものを使っていましたが、問題なく使えていました。

どのように解決するのですか?

コンテナ内でrootとしてコマンドを実行するには --user root . シェルを手に入れるために

docker exec -it --user root kong sh