2016-12-24 38 views
0
$ sudo docker run -it --rm --privileged=true debian-jessie su - dib -c /bin/bash 
bash: cannot set terminal process group (-1): Inappropriate ioctl for device 
bash: no job control in this shell 
[email protected]:~$ sudo locale-gen 
Generating locales (this might take a while)... 
    en_US.UTF-8... done 
$ 

此時碼頭容器已存在(不再運行)。爲什麼不能在碼頭集裝箱內用sudo調用locale-gen?

在另一方面,當使用:

$ sudo docker run -it --rm --privileged=true debian-jessie /bin/bash 
[email protected]:/# locale-gen 
Generating locales (this might take a while)... 
    en_US.UTF-8... done 
Generation complete. 
[email protected]:/# 

locale-gen運行正常沒有問題,而且泊塢窗容器繼續運行。

有人能解釋一下,爲什麼locale-gen在第二個例子中運行正常,但不是在第一個例子中運行?

是否有任何解決方案或變通辦法locale-gensudo


技術背景:碼頭圖像是由來自OpenStack的diskimage-builder生成的。我測試了三個圖像:debian-jessie,debian-stretch和ubuntu-trusty - 都給出了相同的結果。

+0

你需要sudo的?爲什麼不以root啓動你的容器? – BMitch

+0

我正在使用的工具是這樣做的:是的,我需要它在問題中描述。 –

回答

0

對於文件:

沒有找到根本原因 - 但有解決方法:開始runuser代替su泊塢窗解決了我的問題:

sudo docker run -it --rm --privileged=true debian-jessie runuser -l dib -c /bin/bash