도커를 새로운 버전으로 업데이트 하는 다양한 이유(호환성, 기술지원, 최적화)등이 있지만 보안에 대한 얘기만 간단히 서술하려 한다.
docker 최신 버전들은 보안 취약성에 대해 지속적으로 inspect되어 보안패치를 통해 잠재적 악용 최소화.
$docker info
Security Opions:
apparmor
seccomp
SELinux랑 비슷하지만:
→ 허용되지 않은 동작은 즉시 차단
Docker는 컨테이너 시작 시 기본 AppArmor 프로파일을 적용함.
→ 의미:
“Docker 컨테이너는 AppArmor 프로파일 하에서 실행 중이다”
기본 프로파일 이름:
| /sys, /proc/sys 쓰기 | 커널 파라미터 변경 방지 |
| mount | 호스트 파일시스템 탈취 방지 |
| ptrace | 다른 프로세스 해킹 방지 |
| raw socket | 패킷 스니핑 방지 |
→ 실패(AppArmor가 차단)
→ Permission denied
보안 요구가 있는 운영 서버에선 비추천.
2. seccomp - “이 컨테이너는 이 시스템 콜(syscall)만 써라” 를 강제하는 커널 레벨 필터
리눅스 프로그램은 전부 syscall로 커널에 요청함:
| mount | 호스트 디스크 마운트 |
| reboot | 서버 재부팅 |
| ptrace | 프로세스 탈취 |
| kexec_load | 커널 교체 |
| clone | 특수 권한 프로세스 생성 |
컨테이너에서 이런 syscall 허용하면 XX
Docker는 기본적으로:
| mount | 파일시스템 마운트 |
| ptrace | 프로세스 디버깅 |
| kexec_load | 커널 이미지 로드 |
| reboot | 시스템 재부팅 |
| swapon | 스왑 설정 |
| setns | 네임스페이스 탈취 |
→ 실패 (ptrace 관련 syscall 차단 때문)
DB, JVM, 특수 드라이버 쓰는 경우에만 제한적으로 사용
ex)
#Docker stop
$docker stop <컨테이너name>
#삭제
$sudo apt -y remove docker-ce
# 설치
$sudo apt ~~
#Docker start
$docker start <컨테이너name>
# if 이전 버전 실행 중이던 컨테이너 start시 아래 에러가 뜬다면?
docker: Eroor response from daemon cgroups:cgroups mountpoint does not exist: unknown.
# cgroup path에 경로 생성 후 mount
$sudo mkdir /sys/fs/cgroups/systemd
$sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroups/systemd
| Docker - digest (0) | 2025.12.28 |
|---|---|
| Docker - bridge network (0) | 2025.12.28 |
| Docker - 볼륨 정리 (0) | 2025.01.05 |
| Docker - 설치 (ubuntu) (1) | 2024.06.07 |
| Doker - 기본 개념 (1) | 2024.04.11 |