检测是否在 Docker 容器中运行
()
| 33 | |
| 34 | # ==================== Docker 环境检测 ==================== |
| 35 | def _is_running_in_docker() -> bool: |
| 36 | """检测是否在 Docker 容器中运行""" |
| 37 | # 方法1: 检查 /.dockerenv 文件 |
| 38 | if os.path.exists('/.dockerenv'): |
| 39 | return True |
| 40 | # 方法2: 检查 cgroup |
| 41 | try: |
| 42 | with open('/proc/1/cgroup', 'r') as f: |
| 43 | content = f.read() |
| 44 | if 'docker' in content or 'kubepods' in content or 'containerd' in content: |
| 45 | return True |
| 46 | except: |
| 47 | pass |
| 48 | # 方法3: 检查环境变量 |
| 49 | if os.environ.get('DOCKER_CONTAINER') or os.environ.get('KUBERNETES_SERVICE_HOST'): |
| 50 | return True |
| 51 | return False |
| 52 | |
| 53 | |
| 54 | IS_DOCKER = _is_running_in_docker() |