我正在尝试通过运行 docker build 创建一个 docker 映像。以下是我的 Dockerfile 中的代码。
FROM node
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 80
CMD ["node", "server.js"]
Run Code Online (Sandbox Code Playgroud)
但我只得到了 RUN 命令的日志:
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 128B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/node:latest 0.0s
=> [1/4] FROM docker.io/library/node 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 14.62kB 0.0s
=> CACHED [2/4] WORKDIR /app 0.0s
=> [3/4] COPY . /app 0.1s
=> [4/4] RUN npm install 5.0s
=> exporting to image 0.3s
=> => exporting layers 0.2s
=> => writing image sha256:b7949d3a83e365d0c55690d4fd5c6d9f0e0e20fe88c53aebc3e33b067e600231 0.0s
Run Code Online (Sandbox Code Playgroud)
我期望 EXPOSE 和 CMD 以及其他 4 行都可以工作。我应该在哪里检查才能执行此操作?非常感谢你的帮助!
Mar*_*oun 10
EXPOSE
并没有真正发布端口(突出显示的是我的):
该
EXPOSE
指令通知 Docker 容器在运行时监听指定的网络端口。您可以指定端口是侦听 TCP 还是 UDP,如果不指定协议,则默认为 TCP。该
EXPOSE
指令实际上并未发布端口。它充当构建镜像的人和运行容器的人之间的一种文档,关于要发布哪些端口。要在运行容器时实际发布端口,请使用-p
on 标志docker run
来发布和映射一个或多个端口,或者使用-P
标志来发布所有公开的端口并将它们映射到高位端口。
运行容器时,您应该使用该-p
选项才能实际发布和映射端口。例如:
docker run [params] -p 8080:9090 image
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5170 次 |
最近记录: |