[Docker] 使用非 root 權限來執行 docker client

[Docker] 使用非 root 權限來執行 docker client

在 Linux 上使用 docker 時,一般是要用 root 帳號或是 sudo 才能執行的,

不過這樣實在有點麻煩,並不想要每次都加上 sudo 才能執行 docker…

Stack Exchange: How can I use docker without sudo? 找到了答案,

原來 docker (client) 也可以設定成非 root 帳號可以執行的喔~

 

(以下步驟是在 CentOS 7 上進行的)

 

1. 建立 docker 群組

docker 剛裝好時,好像並不會建立 docker 群組,

因此要自己用 groupadd 建立~

sudo groupadd docker

 

如果 /etc/group 一開始就已經有 docker 群組的話,就不用再建立囉~

 

2. 將非 root 帳號加上 docker 群組中

將要使用 docker client 的帳號加到 docker 群組中~

像下面的指令會將 testuser 這個帳號加到 docker 群組裡:

sudo usermod -G docker -a testuser

 

加入群組後,假設這個帳號就是登入中的帳號的話,

group 的資訊並不會立刻更新:

testuser@localhost ~ $ groups
testuser wheel

 

為了要能立刻產生作用,執行 newgrp docker,

讓這個帳號立刻改成使用 docker 這個群組 (或是你要登出登入也行):

testuser@localhost ~ $ newgrp docker
testuser@localhost ~ $ groups
docker wheel testuser

 

3. 重新啟動 docker 服務

重啟 docker 服務之後,所有的變動就完成了:

sudo systemctl restart docker

 

這時候再來用非 root 帳號直接執行 docker 指令看看,

發現已經可以直接執行了,不再需要 sudo 才能跑囉~^^

testuser@localhost ~ $ docker ps -a
CONTAINER ID   IMAGE                COMMAND       CREATED          STATUS                      PORTS   NAMES
7139a0745ac3   testuser/build_prj   "/bin/bash"   5 minutes ago    Exited (0) 2 seconds ago            clever_poincare
17485ef76854   testuser/build_prj   "/bin/bash"   12 minutes ago   Exited (0) 9 minutes ago            condescending_meitner
59e1f860bc50   testuser/build_prj   "/bin/bash"   13 minutes ago   Exited (2) 13 minutes ago           prickly_elion
8cfeae9f0084   testuser/build_prj   "/bin/bash"   13 minutes ago                                       furious_wilson
66992fd9cd63   testuser/build_prj   "/bin/bash"   13 minutes ago                                       elated_kirch
7e42c018170b   testuser/build_prj   "/bin/bash"   14 minutes ago                                       mad_nobel
416ddbf7e9fb   testuser/build_prj   "/bin/bash"   14 minutes ago                                       trusting_perlman
ab2ad34285d3   testuser/build_prj   "/bin/bash"   16 minutes ago                                       clever_poitras

 

(本頁面已被瀏覽過 8,772 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料