重启后Docker容器Map端口发生变化[关闭]

gijlo24d  于 2023-06-21  发布在  Docker
关注(0)|答案(1)|浏览(151)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

2天前关闭。
Improve this question
我对docker有一个很大的问题--重启后它会改变容器Map端口
我启动容器:
docker run -i -t -d -p 3000:63000测试
一切都很好,但重新启动后,内部端口(63000)改为8080
我的dockerfile:

FROM node:18-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 63000
CMD [ "node", "serverWS.js" ]

暴露是OK的。我不知道我还能查什么。也许有人能帮忙
docker.compose.yml

version: '3.9'

services:
        php-env:
                image: cento_php8
                #image: centos_ms
                #image: mydemophpimage
                #build: .
                restart: always
                volumes:
                        -  ./app:/var/www/html
                        -  ./php.ini:/etc/php.ini:ro
                ports:
                        - 5000:80

Docker版本24.0.2,构建cb 74 dfc
重启的意思是运行docker的机器被关闭并再次打开。之后,docker会自动启动(设置:restart always),但是容器在不同的端口上启动。我通过列出机器重启前后运行的容器来检查它。在我有0.0.0.0:3000->63000之前,以及在重新启动0.0.0.0:3000->8080之后

uubf1zoe

uubf1zoe1#

您应该将所需的端口Map添加到docker-compose.yml,并使用docker compose up -d而不是docker run启动容器。

version: '3.9'

services:
... 
    your-service:
        build:
            context: .
            dockerfile: Dockerfile
        restart: always
        ports:
            - 3000:63000

相关问题