Dockerfile mongo:连接握手期间发生连接()错误:拨打 tcp 127.0.0.1:27017
Dockerfile mongo: connection() error occured during connection handshake: dial tcp 127.0.0.1:27017
我有 Dockerfile
FROM mongo
RUN mkdir -p /app/data
WORKDIR /app/data
COPY cars.csv /app/data
RUN mongod --fork --syslog
CMD ["mongoimport", "-d", "Gene", "-c", "Genes", "--type", "csv", "--file", "cars.csv", "--headerline"]
EXPOSE 27017:27017
我使用以下命令构建并启动 docker 文件
docker build -t "mtest:1" .
docker run mtest:1
运行 命令给我以下错误
2022-01-07T19:01:12.784+000 error connecting to host: could not connect to server: server selection error:
server selection timeout, current topology: { Type: Single, Servers: [{ Addr: localhost:27017,
Type: Unknown, Last error: connection() error occured during connection handshake:
dial tcp 127.0.0.1:27017: connect: connection refused }, ] }
docker ps -a
的输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e623f431b9db mtest:1 "docker-entrypoint.s…" 2 minutes ago Exited (1) About a minute ago cranky_satoshi
当我尝试使用 docker exec -it e623f431b9db bash
和 运行 mongod
在容器内部执行操作时,我得到以下结果
MongoDB shell version v5.0.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:372:17
@(connect):2:6
exception: connect failed
exiting with code 1
我是新手,我不确定自己做错了什么。
您已经用自己的 CMD
覆盖了 mongo 启动过程,因此 Mongo 服务器不再启动。因此,mongoimport
将失败,您的容器将退出。
相反,只是 运行 原始的 Mongo 图像本身带有卷安装,然后执行到它,以及 运行 您的导入功能。之后,它仍然是 运行ning,您可以连接到它。
顺便说一下,EXPOSE 27107:27107
不是一个有效的表达式。
我有 Dockerfile
FROM mongo
RUN mkdir -p /app/data
WORKDIR /app/data
COPY cars.csv /app/data
RUN mongod --fork --syslog
CMD ["mongoimport", "-d", "Gene", "-c", "Genes", "--type", "csv", "--file", "cars.csv", "--headerline"]
EXPOSE 27017:27017
我使用以下命令构建并启动 docker 文件
docker build -t "mtest:1" .
docker run mtest:1
运行 命令给我以下错误
2022-01-07T19:01:12.784+000 error connecting to host: could not connect to server: server selection error:
server selection timeout, current topology: { Type: Single, Servers: [{ Addr: localhost:27017,
Type: Unknown, Last error: connection() error occured during connection handshake:
dial tcp 127.0.0.1:27017: connect: connection refused }, ] }
docker ps -a
的输出CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e623f431b9db mtest:1 "docker-entrypoint.s…" 2 minutes ago Exited (1) About a minute ago cranky_satoshi
当我尝试使用 docker exec -it e623f431b9db bash
和 运行 mongod
在容器内部执行操作时,我得到以下结果
MongoDB shell version v5.0.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:372:17
@(connect):2:6
exception: connect failed
exiting with code 1
我是新手,我不确定自己做错了什么。
您已经用自己的 CMD
覆盖了 mongo 启动过程,因此 Mongo 服务器不再启动。因此,mongoimport
将失败,您的容器将退出。
相反,只是 运行 原始的 Mongo 图像本身带有卷安装,然后执行到它,以及 运行 您的导入功能。之后,它仍然是 运行ning,您可以连接到它。
顺便说一下,EXPOSE 27107:27107
不是一个有效的表达式。