Docker无法启动容器没有这样的文件或目录

时间:2014-11-10 11:20:52

标签: mysql linux ubuntu boot2docker

我无法在构建之后启动我的容器,我得到了:

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"]

我的sh脚本只会这样做:

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

对Docker文档的反应:

  

如果该文件,docker build将返回无此类文件或目录错误   或上载的上下文中不存在目录。这可能发生   如果没有上下文,或者您指定了其他位置的文件   主机系统。上下文仅限于当前目录(和   它的孩子们出于安全原因,并确保可重复的构建   远程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上成功运行..

3 个答案:

答案 0 :(得分:8)

在使用CMD集成并调用shell脚本时,我得到了这个内容,该脚本在我的容器中有Windows换行符(CR + LF)。

转换为Linux行结尾(仅限LF)并重建容器后,它会很好地开始。

答案 1 :(得分:-1)

docker run语法是 来自https://docs.docker.com/reference/commandline/cli/#run

docker run [OPTIONS] IMAGE [COMMAND] [ARG ...]

由于ogc-mysql不是图像或命令,因此失败

你可以发布

的结果吗?
docker ps -a 

答案 2 :(得分:-8)

问题解决了,这是sh文件中的行结束问题......