以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2021/01/15/170137より取得しました。


docker exec で root になる。/ docker exec を指定したユーザーで実行する

docker exec しても root になるとは限らない。

dockerのインスタンスによっては、Dockerfile の記述によっては、docker exec がユーザー root で実行できないことがある。

docker exec を強制的に root にする

uid をオプションに付けたら、強制的にrootユーザ で実行することができる。 -u UIDでUIDを指定することができる。

docker exec -u 0 -it XXXXXX bash 

docker exec で user を指定する。

指定したユーザで起動するには。まずUIDを調べる。UIDがわからないと指定できないし、Dockerのコンテナ内部でどのユーザーがどの番号で存在してるかわからないですね。

たとえば、psqlpostgresql で起動するとする。

# docker exec -it 6a7e5eca6505 getent passwd | grep post
postgres:x:999:999::/var/lib/postgresql:/bin/bash

そのUIDで起動する。

docker exec -it -u 999 6a7e5eca6505 psql

こうすれば、postgresユーザーをdocker exec で直接指定できる。 これで別のユーザーに成り代わってシェルを使えたりする。

apt が使えない docker インスタンスとかで使える

通常通り exec しても apt が使えないときとか。sudo が使えないときとか。

ps がないのでインストールしたいときとかに使える。

docker のイメージファイルはあれこれ省略されているので、ちょっとしたトラブルがあると困るのですが、権限がない程度で Dockerfile から書いて build するのはめんどくさすぎるので。ユーザーを指定されているDockerイメージを扱うためには、ちょっとしたコツがいる。

参考資料

https://stackoverflow.com/questions/59376888/become-root-in-a-docker-container

2021-05-27

表記ゆれ更新




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2021/01/15/170137より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14