2015-08-27 4 views
1

Я довольно новичок в докер, поэтому я уверен, что совершил какую-то глупую ошибку.Ошибка ввода-вывода Docker

Я пытаюсь использовать докер для настройки среды с моими необходимыми библиотеками и зависимостями, установленными для C++. Однако я не могу заставить VM построить.

Я бег на OSX Йосемити, и мой процесс установки был следующим:

$ brew cask install virtualbox 
$ brew install docker-machine 
$ docker-machine create --driver virtualbox default 
$ eval "$(docker-machine env default)" 

Я был в состоянии успешно запустить несколько примеров, чтобы проверить. Тем не менее, я не могу запустить следующую MWE Dockerfile:

FROM buildpack-deps:jessie-scm 
RUN apt-get update && apt-get install -y --no-install-recommends \ 
    libboost-dev 

Я получаю следующее:

$ docker build . 
docker build . 
Sending build context to Docker daemon 2.048 kB 
Step 0 : FROM buildpack-deps:jessie-scm 
---> a0b6d62d8b49 
Step 1 : RUN apt-get update && apt-get install -y --no-install-recommends  libboost-dev 
---> Running in d0dc09b47dac 
Get:1 http://security.debian.org jessie/updates InRelease [63.1 kB] 
Get:2 http://security.debian.org jessie/updates/main amd64 Packages [172 kB] 
Get:3 http://httpredir.debian.org jessie InRelease [134 kB] 
Get:4 http://httpredir.debian.org jessie-updates InRelease [123 kB] 
Get:5 http://httpredir.debian.org jessie/main amd64 Packages [9038 kB] 
Get:6 http://httpredir.debian.org jessie-updates/main amd64 Packages [3614 B] 
Fetched 9534 kB in 8s (1183 kB/s) 
Reading package lists... 
Reading package lists... 
Building dependency tree... 
Reading state information... 
The following extra packages will be installed: 
    libasan0 libatomic1 libboost1.55-dev libc-dev-bin libc6-dev libgcc-4.8-dev 
    libgomp1 libitm1 libquadmath0 libstdc++-4.8-dev libtsan0 linux-libc-dev 
Suggested packages: 
    libboost-doc libboost1.55-doc libboost-atomic1.55-dev 
    libboost-chrono1.55-dev libboost-context1.55-dev libboost-coroutine1.55-dev 
    libboost-date-time1.55-dev libboost-exception1.55-dev 
    libboost-filesystem1.55-dev libboost-graph1.55-dev 
    libboost-graph-parallel1.55-dev libboost-iostreams1.55-dev 
    libboost-locale1.55-dev libboost-log1.55-dev libboost-math1.55-dev 
    libboost-mpi1.55-dev libboost-mpi-python1.55-dev 
    libboost-program-options1.55-dev libboost-python1.55-dev 
    libboost-random1.55-dev libboost-regex1.55-dev 
    libboost-serialization1.55-dev libboost-signals1.55-dev 
    libboost-system1.55-dev libboost-test1.55-dev libboost-thread1.55-dev 
    libboost-timer1.55-dev libboost-wave1.55-dev libboost1.55-tools-dev 
    libmpfrc++-dev libntl-dev glibc-doc libstdc++-4.8-doc 
Recommended packages: 
    manpages-dev 
The following NEW packages will be installed: 
    libasan0 libatomic1 libboost-dev libboost1.55-dev libc-dev-bin libc6-dev 
    libgcc-4.8-dev libgomp1 libitm1 libquadmath0 libstdc++-4.8-dev libtsan0 
    linux-libc-dev 
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded. 
Need to get 12.3 MB of archives. 
After this operation, 132 MB of additional disk space will be used. 
Get:1 http://security.debian.org/ jessie/updates/main linux-libc-dev amd64 3.16.7-ckt11-1+deb8u3 [995 kB] 
Get:2 http://httpredir.debian.org/debian/ jessie/main libasan0 amd64 4.8.4-1 [63.3 kB] 
Get:3 http://httpredir.debian.org/debian/ jessie/main libatomic1 amd64 4.9.2-10 [8992 B] 
Get:4 http://httpredir.debian.org/debian/ jessie/main libgomp1 amd64 4.9.2-10 [37.8 kB] 
Get:5 http://httpredir.debian.org/debian/ jessie/main libitm1 amd64 4.9.2-10 [29.2 kB] 
Get:6 http://httpredir.debian.org/debian/ jessie/main libquadmath0 amd64 4.9.2-10 [129 kB] 
Get:7 http://httpredir.debian.org/debian/ jessie/main libtsan0 amd64 4.9.2-10 [212 kB] 
Get:8 http://httpredir.debian.org/debian/ jessie/main libgcc-4.8-dev amd64 4.8.4-1 [1689 kB] 
Get:9 http://httpredir.debian.org/debian/ jessie/main libc-dev-bin amd64 2.19-18 [237 kB] 
Get:10 http://httpredir.debian.org/debian/ jessie/main libc6-dev amd64 2.19-18 [2003 kB] 
Get:11 http://httpredir.debian.org/debian/ jessie/main libstdc++-4.8-dev amd64 4.8.4-1 [1053 kB] 
Get:12 http://httpredir.debian.org/debian/ jessie/main libboost1.55-dev amd64 1.55.0+dfsg-3 [5818 kB] 
Get:13 http://httpredir.debian.org/debian/ jessie/main libboost-dev amd64 1.55.0.2 [3368 B] 
/bin/sh: 1: /usr/sbin/dpkg-preconfigure: Input/output error 
Fetched 12.3 MB in 6s (1797 kB/s) 
dpkg: error: error opening configuration directory '/etc/dpkg/dpkg.cfg.d': Input/output error 
E: Directory '/var/log/apt/' missing 
E: Sub-process /usr/bin/dpkg returned an error code (2) 
E: Failed to write temporary StateFile /var/lib/apt/extended_states.tmp 
The command '/bin/sh -c apt-get update && apt-get install -y --no-install-recommends libboost-dev' returned a non-zero code: 100 

Кроме того, когда эта ошибка возникает, кажется, что демон разбился

$ docker run hello-world 

Ошибка ответа от демона: открыть /mnt/sda1/var/lib/docker/repositories-aufs: нет такого файла или каталога

$ docker-machine stop default 
    $ docker-machine start default 
    Starting VM... 
    Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command. 
    $ docker run hello-world 



Hello from Docker. 
... 

Что может быть причиной этих ввода/вывода ошибок?

+0

Что говорит 'docker-machine -version' и' docker version'? Я протестировал ваш 'Dockerfile', и он хорошо работает здесь с докерной версией 1.8.1 и докерной машиной версии 0.4.0. Я использую VirtualBox 5.0.0 для OS X 10.10.5. – h3nrik

+0

@ h3nrik docker - 1.8.1, докер-машина - 0.4.0, а виртуальный бокс - 5.0.2 – Gilly

ответ

0

Установка Docker на OS X теперь обрабатывается недавно выпущенным инструментом Docker Toolbox.

Вы должны использовать этот набор инструментов, как он будет установить и настроить зависимости Docker для вас

+0

У меня создалось впечатление, что панель инструментов докеров - это просто дистрибутив 'docker',' docker-machine' и ' докер-compose'. Я не использую более старый 'boot2docker'. – Gilly

+0

Исправление, 'brew search docker' показывает, что есть' dockertoolbox'. Я установлю это и отчитаю :) – Gilly

0

Ну я исправили проблему (вид), но мне кажется, основная проблема не была решена.

В ответ на вопрос: основная причина, по-видимому, была связана с репозиторием пакета Debian.

Я изменил базовое изображение от buildpacks:jessie-scm до buildpacks:trusty. У меня был целый ряд вопросов с базой DEBiAN пакетов даже докер, имея терпит неудачу с такими командами, как:

docker run debian:jessie sh -c "apt-get update && apt-get install -y cmake" 

или

docker run debian:wheezy sh -c "apt-get clean && apt-get update && apt-get install -y cmake" 

Переход к Ubuntu, кажется, чтобы исправить эту проблему, так это выглядит возможно, это конфликт с репозиториями пакета Debian. Я мог бы попытаться это исправить, но Ubuntu будет отлично работать для моих целей (может быть, даже предпочтительнее).

Смежные вопросы