2014-11-10 4 views
2

Я не могу начать свой контейнер после сборки и я получил:Docker не может начать контейнер нет такого файла или каталога

Error response from daemon: Cannot start container ogc-mysql: no such file or directory 
Error: failed to start one or more containers 

Вот мой Docker файл:

FROM ubuntu:latest 

MAINTAINER Davin Kevin 

# Install latest updates 
RUN apt-get update 
RUN apt-get upgrade -y 

# Install mysql client and server 
RUN apt-get -y install mysql-client mysql-server curl 

# Enable remote access (default is localhost only, we change this 
# otherwise our database would not be reachable from outside the container) 
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf 

# Install database 
ADD ./database.sql /var/db/database.sql 

# Set Standard settings 
ENV user ogc 
ENV password ogc 
ENV url file:/var/db/database.sql 
ENV right READ 

# Install starting script 
ADD ./start-database.sh /usr/local/bin/start-database.sh 
RUN chmod +x /usr/local/bin/start-database.sh 

EXPOSE 3306 

CMD ["/usr/local/bin/start-database.sh"] 

И мой ш скрипт только делает:

docker build -t ogc-mysql . 
docker run --name ogc-mysql -d -p 3306:3306 ogc-mysql 

И ВЕ документации Докер:

docker build вернет такую ​​ошибку файла или каталога, если файл или каталог не существует в загруженном контексте. Это может произойти , если контекст отсутствует, или если вы указываете файл, который находится в другом месте на Host system. Контекст ограничивается текущим каталогом (и его дочерними элементами) по соображениям безопасности и обеспечивает повторяемость сборок на удаленных хостах Docker . Это также является причиной того, что ADD ../file не будет работать .

Эта команда: docker ps -a возвращает:

CONTAINER ID : 70.. 
IMAGE : ogc-sql:latest 
COMMAND : "/usr/local/bin/star" 
CREATED : 13 seconds ago 
STATUS :/
PORTS :/
NAMES : ogc-mysql 

Дело в том, что эта команда успешно работает на Mac OS ..

ответ

-6

Проблема решена, это была линия окончание проблема в Sh файлов ...

+6

Возможно, было бы полезно, если бы вы выяснили, что такое проблема с окончанием строки. – Tom

+0

true .. это было бы полезно – sambehera

-1

Синтаксис докер пробег из https://docs.docker.com/reference/commandline/cli/#run

докер пробег [ОПЦИИ] ИЗОБРАЖЕНИЕ [КОМАНДА] [ARG ...]

, как OGC-MySQL не является изображением или команда, это не удается

Вы можете оставить результат

docker ps -a 
+0

Обновлено, но это отлично работает в Mac OS .. – eento

8

У меня это получилось при интеграции и вызове сценария оболочки с использованием CMD, который имел разрыв строки Windows (CR + LF) в моем контейнере.

После преобразования в конец строки Linux (только для LF) и пересоздания контейнера он начнет работать нормально.