ubuntu@instance:~$ id ubuntu
uid=1001(ubuntu) gid=1001(ubuntu) groups=1001(ubuntu),...
ubuntu@instance:~$ id opc
uid=1000(opc) gid=1000(opc) groups=1000(opc),...# docker-compose.yml
services:
app:
image: your-image
user: "1001:1001" # ubuntu UID:GID
volumes:
- ./data:/app/data
# 또는 동적 설정
# user: "${UID:-1001}:${GID:-1001}"# 환경변수로 동적 설정
export UID=$(id -u) # 1001
export GID=$(id -g) # 1001
docker compose up -d# 현재 사용자 확인
id ubuntu # uid=1001 확인
# Docker volume만 chown (안전)
sudo chown -R 1001:1001 /home/ubuntu/docker-volumes
sudo chmod -R 755 /home/ubuntu/docker-volumes
# opc(1000) 사용 시
sudo chown -R 1000:1000 /home/ubuntu/shared-volumes# opc로 전환 (UID 1000)
sudo su - opc
# Docker 작업 후 ubuntu로 복귀
exit# 현재 사용자
whoami # ubuntu
id # uid=1001(ubuntu)
# 모든 사용자 확인
id ubuntu # uid=1001
id opc # uid=1000
getent passwd | grep -E '^(ubuntu|opc)'# 홈 전체 변경 X (문제 발생)
sudo chown -R 1000:1000 /home/ubuntu/ # 위험!# 특정 volume만 변경
sudo chown -R 1001:1001 /home/ubuntu/my-docker-app/클라우드 | 기본 사용자 | UID |
OCI Ubuntu | ubuntu | 1001 (opc가 1000 선점) |
AWS EC2 Ubuntu | ubuntu | 1000 |
GCP Ubuntu | 사용자 지정 | 1000 |
version: '3.8'
services:
web:
image: nginx:latest
user: "${UID:-1001}:${GID:-1001}"
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
app:
image: node:18
user: "${UID:-1001}:${GID:-1001}"
working_dir: /app
volumes:
- .:/app
command: npm start#!/bin/bash
# fix-docker-permissions.sh
echo "OCI Ubuntu Docker 권한 자동 설정"
echo "현재 UID: $(id -u), GID: $(id -g)"
# docker-compose 환경변수 설정
export UID=$(id -u)
export GID=$(id -g)
export DOCKER_USER="${UID}:${GID}"
echo "DOCKER_USER=${DOCKER_USER} 설정 완료"
echo "docker compose up 실행하세요"