Что ж, я изменил файл docker -compose, чтобы иметь другую привязку порта к 80. Я надеюсь, что это приведет к изменению портов в работающих (вновь созданных) docker.
Однако Я заметил, что этого не происходит:
version: '3.7'
networks:
test:
driver: bridge
services:
test-nginx:
build:
context: ./test-nginx/
container_name: test-nginx
image: test-nginx
networks:
- test
ports:
- 380:80
Однако после docker-compose up -d --build test-nginx
, а затем docker ps
я вижу следующее:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc1ef0f91f24 test-nginx "nginx -g 'daemon of…" 5 minutes ago Up 8 seconds 443/tcp, 0.0.0.0:280->80/tcp test-nginx
Он все еще использует старый порт 280
, Как я могу заставить его обновить docker без предварительного удаления докеров et c? Контекст содержит DockerFile
, который просто предоставляет необходимые порты. (среди получаемых данных сайта).
Может ли это быть из-за того, что docker -compose изначально запускается в (python) виртуальной среде? - А позже в нормальной оболочке? Если это проблема, как я могу go "выйти" из виртуальной среды в python?
docker -compose изначально запускается через подпроцесс:
subprocess.run(['sudo', 'docker-compose', 'up', '-d', '--build'])