我是新來的碼頭工人。當我使用命令運行像ubuntu鏡像這樣的Docker鏡像時,如何以非root用戶身份運行docker映像?
sudo docker run -i -t ubuntu:14.04
默認情況下,它以root身份進入容器,像這樣。
我搜索這個方面,但我完全對這個話題首發我找不到任何的如何啓動一個碼頭工人的圖像作爲非root用戶。
如果有人用一個如何以非root用戶身份運行docker鏡像的例子進行說明,那將會很棒。
我是新來的碼頭工人。當我使用命令運行像ubuntu鏡像這樣的Docker鏡像時,如何以非root用戶身份運行docker映像?
sudo docker run -i -t ubuntu:14.04
默認情況下,它以root身份進入容器,像這樣。
我搜索這個方面,但我完全對這個話題首發我找不到任何的如何啓動一個碼頭工人的圖像作爲非root用戶。
如果有人用一個如何以非root用戶身份運行docker鏡像的例子進行說明,那將會很棒。
docker run
命令的-u
parameter允許您指定不同的用戶。在你的情況,並假設你有一個在你的碼頭工人形象命名foo
用戶,你可以運行:
sudo docker run -i -t -u foo ubuntu:14.04 /bin/bash
不建議允許在不使用sudo的情況下運行docker,因爲Docker沒有內置審計或日誌記錄,而sudo卻是。 如果您想讓docker訪問非root用戶,Red Hat建議設置sudo。 向/ etc/sudoers添加如下條目。
dwalsh ALL=(ALL) NOPASSWD: /usr/bin/docker
現在,設立在〜/ .bashrc一個別名運行泊塢窗命令:
alias docker="sudo /usr/bin/docker"
現在,當用戶執行該命令泊塢窗以非根將被允許,並得到適當的日誌記錄。
docker run -ti --privileged -v /:/host fedora chroot /host
看日誌或/ var/log/messages。
journalctl -b | grep docker.*privileged
Aug 04 09:02:56 dhcp-10-19-62-196.boston.devel.redhat.com sudo[23422]: dwalsh : TTY=pts/3 ; PWD=/home/dwalsh/docker/src/github.com/docker/docker ; USER=root ; COMMAND=/usr/bin/docker run -ti --privileged -v /:/host fedora chroot /host
用戶詢問有關以容器外的非root用戶身份運行的內容,而您正在討論以容器外的非root用戶身份運行。非常不同的問題。 –
這是無可否認的哈克,但對你有好處開始只是爲了快速測試的東西那些小巧的容器:
#!/bin/bash
set -eu
NAME=$1
IMG=$2
#UID=$(id -u)
USER=$(id -un)
GID=$(id -g)
GROUP=$(id -gn)
# --privileged needed for dmidecode
docker run --privileged -d -v /tmp:/tmp -v "/home/$USER:/home/$USER" -h "$NAME" --name "$NAME" "$IMG" init
docker exec "$NAME" /bin/bash -c "groupadd -g $GID $GROUP && useradd -M -s /bin/bash -g $GID -u $UID $USER"
腳本的完整版我在這裏使用:
是否將用戶添加到_docker_組? –
我們是否需要此用戶(英國)在我們正在運行的碼頭集裝箱內?否則圖像將如何識別該用戶?正如Adrian所問,你是指碼頭組? – Stranger
另外它會拋出錯誤,'FATA [0000]來自守護進程的錯誤響應:無法啓動容器acbd05873a7a22fdd538c931f9e6ee54184ff5f3ac6c281d732bbde1823cb731:[8]系統錯誤:無法找到用戶uk' – Stranger