Quantcast
Channel: 小惡魔 – 電腦技術 – 工作筆記 – AppleBOY
Viewing all articles
Browse latest Browse all 325

在 Docker 內設定使用者及群組權限的三種方式

$
0
0

docker

如果平常本身有在玩 Docker 的開發者肯定知道透過 docker command 啟動的容器預設是使用 root 來當作預設使用者及群組,這邊會遇到一個問題,當 Host 環境你有 root 權限就沒有此問題,如果你沒有 root 權限,又有需求在 Docker 容器內掛上 Volume,會發現產生出來的檔案皆會是 root 權限,這時候在 Host 完全無法寫入。本篇教大家使用三種方式來設定容器使用者權限。

使用 docker 指令時指定使用者

進入 Ubuntu 容器會透過底下指令:

docker run -ti ubuntu /bin/bash

這時候可以透過 -u 方式將使用者 uid 及群組 gid 傳入容器內。

mkdir tmp
docker run -ti -v $PWD/tmp:/test \
  -u uid:gid ubuntu /bin/bash

如何找到目前使用者 uid 及 gid 呢,可以透過底下方式

id -u
id -g

上述指令可以改成:

docker run -ti -v $PWD/tmp:/test \
  -u $(id -u):$(id -g) ubuntu /bin/bash

使用 Dockerfile 指定使用者

也可以直接在 dockerfile 內直接指定使用者:

# Dockerfile

USER 1000:1000

我個人不是很推薦這方式,除非是在 container 內獨立建立使用者,並且指定權限。

透過 docker-compose 指定權限

透過 docker-compose 可以一次啟動多個服務。用 user 可以指定使用者權限來寫入特定的 volume

services:
  agent:
    image: xxxxxxxx
    restart: always
    networks:
      - proxy
    logging:
      options:
        max-size: "100k"
        max-file: "3"
    volumes:
      - ${STORAGE_PATH}:/data
    user: ${CURRENT_UID}

接著可以透過 .env 來指定變數值

STORAGE_PATH=/home/deploy/xxxx
CURRENT_UID=1001:1001

心得

會指定使用者權限通常都是有掛載 Host volume 進入容器內,但是您又沒有 root 權限,如果沒有這樣做,這樣產生出來的檔案都會是 root 權限,一般使用者無法寫入,只能讀取,這時就需要用到此方法。


Viewing all articles
Browse latest Browse all 325

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.