디스크가 없는 Ubuntu 16.04에서 docker를 실행하고 싶습니다.
PXE 서버를 설정하고 디스크 없는 우분투 참조를 실행할 수 있습니다여기. 그러나 을 실행하면 docker run --rm hello-world
디스크가 없는 시스템이 다음 메시지를 반환합니다.
[1731.173432] overlayfs: filesystem on '/var/lib/docker/overlay2/0fdffd6d...76-init/diff' not supported as upperdir
docker: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/870b3f2dd200854c747c16abae84e22bf42506cc0aba0fa183205165a83462d5-init/merged: invalid argument.
See 'docker run --help'.
이 오류를 검색한 결과 docker가 "overlay2"를 파일 시스템으로 사용하고 "overlay2"는 내가 사용 중인 nfs 파일 시스템을 지원하지 않는다는 것을 알게 되었습니다.
디스크가 없는 시스템에서 도커를 사용하도록 도와줄 수 있는 사람이 있나요?
답변1
NFS는 지원되지 않습니다~을 위한Docker의 그래프 데이터.
그것Docker를 램디스크에서 완전히 실행할 수 있어야 합니다.환경 변수를 설정 DOCKER_RAMDISK
하고 Docker 데몬이 이를 사용하도록 하는 경우dockerd -g /path/to/ramdisk
블록 장치를 PXE 부팅 시스템으로 내보내는 다른 방법이 있는 경우 이 방법을 사용하고 장치를 다음과 같이 사용하십시오.direct-lvm
다른 이름으로 저장장치 매퍼스토리지 드라이버.NBD,iSCSI, 아마도세팔로스포린.
내 생각에 NFS가 작동할 수 있는 유일한 방법은 Oracle Linux가 (?)DM-NFS커널 드라이버사용할 수 있다일반적으로 NFS를 통해 루프백 파일을 마운트하는 것보다 devicemapper 루프백 파일을 더 빠르게 만듭니다. 루프백 파일은 로컬 디스크의 Docker에서 제대로 재생되지 않으므로 NFS의 상황이 좋지 않을 것으로 예상됩니다.
답변2
NFS에서 docker를 사용하는 방법을 알아볼 수 있습니다. overlay2 대신 aufs를 사용하세요.
docker 서비스를 중지하여 중지해야 합니다 sudo systemctl stop docker
. 그런 다음 다음과 같이 편집 /etc/docker/daemon.json
하고 docker를 다시 실행합니다 sudo systemctl start docker
.
{
"storage-driver": "aufs"
}