我正在尝试通过运行 docker build 创建一个 docker 映像。以下是我的 Dockerfile 中的代码。
FROM node
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 80
CMD ["node", "server.js"]
但我只得到了 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
我期望 EXPOSE 和 CMD 以及其他 4 行都可以工作。我应该在哪里检查才能执行此操作?非常感谢你的帮助!
Mar*_*oun 10
EXPOSE并没有真正发布端口(突出显示的是我的):
该
EXPOSE指令通知 Docker 容器在运行时监听指定的网络端口。您可以指定端口是侦听 TCP 还是 UDP,如果不指定协议,则默认为 TCP。该
EXPOSE指令实际上并未发布端口。它充当构建镜像的人和运行容器的人之间的一种文档,关于要发布哪些端口。要在运行容器时实际发布端口,请使用-pon 标志docker run来发布和映射一个或多个端口,或者使用-P标志来发布所有公开的端口并将它们映射到高位端口。
运行容器时,您应该使用该-p选项才能实际发布和映射端口。例如:
docker run [params] -p 8080:9090 image
| 归档时间: | 
 | 
| 查看次数: | 5170 次 | 
| 最近记录: |