我想在我的计算机上映射一些随机端口,例如localhost:7006
到我的 WordPress docker 容器的 port 80
.当我从 80:80
更改 WordPress 的端口时至 7006:80
它不仅停止工作 localhost(port 80)
但也不要回复 localhost:7006
.docker-compose.yml
文件如下所示:
version: '3'
services:
wordpress:
depends_on:
- db
image: wordpress:4.7.1
restart: always
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: p4ssw0rd!
ports:
- 80:80 # Expose http and https
- 8443:443
networks:
- wp_nwk
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- wp_nwk
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 7005:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- wp_nwk
networks:
wp_nwk:
volumes:
db_data:
最佳答案
经过一番研究,我发现 WordPress 容器设置了一次端口,因为它需要将 URL( localhost:7006
)保存在数据库中,因为我要保留数据库数据。
我跑了 docker-compose up
一次使用默认端口 80:80
导致 localhost:80
的配置或 localhost
保存在数据库中。因此,当我再次更改端口并运行 docker-compose up
时,我实际上将链接的 mysql db 容器中存储的 URL 与我的 WordPress 容器搞混了。
我跑了docker-compose down --volumes
(这会导致持久化数据破坏)
然后在 docker-compse.yml 中更改了我的 WordPress 容器的端口。再次运行以下命令在端口 7006 ( localhost:7006
) 上创建了我的 WordPress 容器。docker-compose up
wordpress:
depends_on:
- db
image: wordpress:4.7.1
restart: always
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: p4ssw0rd!
ports:
- 7006:80 # Expose http and https
- 8443:443
networks:
- wp_nwk
IMPORTANT: I am just playing with docker, so I don't want to save my volumes data. Anyone wanting to keep their data must not use the
docker-compose down --volumes
它现在正在所需的端口上运行
关于wordpress - Docker:我无法将 80 以外的端口映射到我的 WordPress 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48825586/