LoginSignup
25
26

More than 3 years have passed since last update.

docker run するときにUID,GIDを指定する

Last updated at Posted at 2015-07-28

追記 2021-02-04

自分のidを指定したいときは

docker run --rm -u `id -u`:`id -g` \
 -v $PWD:/work ubuntu:latest touch /work/uid1000gid1000.txt

docker run するときに UID, GIDを指定する

マルチユーザーを想定して、コンテナを動かすときにユーザーのIDを指定したうえで、コンテナ内のコマンドが実行できるのか、手元の環境 docker 1.6.0 で確認してみた。

オフィシャルのドキュメントによると

Dockerfileの中に記述するのであれば、USERを使うことで任意のUIDでコンテナを実行できることが書いてあり、さらにコマンドラインからでも -u="" の形で指定することでこのオプションを上書きすることができる。

ただ、GIDも指定できるようにはみえなかった。

コマンドラインのヘルプで確認する

以下のコマンドで確認してみた

docker run --help

出力から抜粋

-u, --user= Username or UID (format: <name|uid>[:<group|gid>])

ということで、gidも指定できそうであった。

UID 1000, GID 1000 でコンテナを動かしたい

docker 1.6.0 では

docker run --rm -u=1000:1000 -v $PWD:/work ubuntu:latest touch /work/uid1000gid1000.txt

確認する。

$ ls -ln uid1000gid1000.txt 
-rw-r--r--. 1 1000 1000 0 Jul 28 15:29 uid1000gid1000.txt

追記(2016-08-02)

複数のgidを指定したいときは、--group-addを使えば良い
(このオプションがいつからつかえるようになっているかはわからないが、1.11.2 ではつかえるようだ)

--group-add=2000

今後

  • ほかのバージョンでどうなるのか試してみたい。
  • デーモンもうまく動かせるケースもあるのかを確認してみたい。
25
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
26