Docker的新手,尚未完全理解它,如果我的表达式令人困惑/错误,请多多包涵。我在Azure上有一个Ubuntu盒,并分配了公共IP地址。然后,我将腻子放入盒子中并安装apache,php。我还安装了Docker和Docker-compose。我正在按照this official tutorial安装wordpress(在端口8000上)。安装完成后,我可以在http://xxx.xxx.xxx.xxx上看到默认的apache ubunto页面,但无法在http://xxx.xxx.xxx.xxx:8000上访问该网站。无法访问它的原因是什么?我找不到任何相关的教程,因为大多数教程都是在localhost上进行的,因此无法参考。这是我的docker-compose.yml文件:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
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
volumes:
db_data:
docker ps输出如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
07d669b9f95e phpmyadmin/phpmyadmin "/run.sh supervisord…" 10 hours ago Up 10 hours 9000/tcp, 0.0.0.0:8080->80/tcp wp_phpmyadmin_1
5ff939494739 wordpress:latest "docker-entrypoint.s…" 11 hours ago Up 11 hours 0.0.0.0:8000->80/tcp wp_wordpress_1
479826f7cfb8 mysql:5.7 "docker-entrypoint.s…" 11 hours ago Up 11 hours 3306/tcp, 33060/tcp wp_db_1
解决方案:最后,我设法通过在Azure中打开端口来使其工作。
答案 0 :(得分:0)
只要端口被暴露并且您可以在主机中看到内容,docker就不会出现问题
问题可能出在主机上,主机应该暴露8000端口
我不熟悉Azure,但我猜默认情况下端口80是公开的,所以尝试更改
ports:
- "8000:80"
到
ports:
- "80:80"
并使用端口80(默认为http)呼叫计算机