여러분
Docker 이미지를 사용하여 웹 애플리케이션 개발을 연구하던 중 다음과 같은 문제를 발견했습니다.
(아래에 있는 모든 명령은 Vagrant가 관리하는 VBox 가상 머신 내에서 실행됩니다.)
사용자 정의 항목을 만들어
Dockerfile
에 배치합니다$HOME/my_app
.FROM ubuntu:14.04 RUN apt-get -q update && apt-get install -y \ python-dev \ python-setuptools \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN easy_install pip RUN pip install virtualenv
위의 빌드 이미지를 사용하세요
Dockerfile
.sudo docker build -t kamils/my_app:0.1 $HOME/my_app
첫 번째 RUN 레이어가 완료될 때까지 빌드 프로세스는 계획대로 진행됩니다. 그런 다음 가상 머신이 응답을 중지합니다. 담당 VBox 프로세스가 호스트 CPU의 제어를 벗어났습니다(htop이 200% 사용량을 나타냈습니다 :P).
무슨 일이 일어나고 있는지 또는 내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?
편집하다
(요청 시) free -m
출력:
total used free shared buffers cached
Mem: 7890 7410 480 612 30 963
-/+ buffers/cache: 6416 1473
Swap: 7627 1450 6177
또한 호스트 시스템이 Ubuntu 14.04에서 실행되는 동안 게스트 VM 자체는 Arch Linux로 구동된다는 점도 언급해야 합니다.
답변1
좀 더 파고들었고 대답은 아주 간단해졌습니다.
내가 실행 중인 Arch Linux Vagrant 상자는 "aufs" 모듈이 내장되지 않은 커널을 사용합니다. Docker는 auf 없이 컨테이너를 실행할 수 있지만 그 위에 추가 레이어를 구성하면 시스템 충돌이 발생할 수 있습니다.
불행하게도 Docker는 aufs가 시스템에 존재하지 않는다는 사실을 사용자에게 경고하지 않습니다.
어쨌든 .. 해결되었습니다.