我想在我的计算机上映射一些随机端口,例如localhost:7006
到我的WordPress泊坞窗容器port 80
。当我将WordPress的端口从80:80
更改为7006:80
时,它不仅会停止工作localhost(port 80)
{1}}但也没有回复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:
答案 0 :(得分:8)
经过一番研究后,我发现WordPress容器设置了一次端口,因为它需要在数据库中保存URL(localhost:7006
),因为我正在持久保存数据库。
我使用默认端口docker-compose up
配置运行80:80
一次,导致localhost:80
或localhost
保存在数据库中。所以,当我再次更改端口并运行docker-compose up
时,我实际上搞砸了存储在链接的mysql数据库容器中的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
重要提示:我只是在玩码头,所以我不想保存 卷数据。任何想要保留数据的人都不能使用
docker-compose down --volumes
答案 1 :(得分:1)
您需要从wordpress admin更改[WordPress地址(URL)和站点地址(URL)],然后在docker-compose中更改端口,而不会破坏卷中的数据。
答案 2 :(得分:0)
如果要更改端口,则需要执行以下步骤。我成功更改了我的wordpres端口
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
docker exec -it *wordpres_container_id* bash
wp_config.php
define( 'WP_HOME', 'http://example.com' );
define( 'WP_SITEURL', 'http://example.com' );
docker-compose.yml
端口更改为80 docker-compose down
docker-compose up -d