我正在尝试本地安装 wordpress 官方 docker 镜像(事实上的镜像而不是 fpm)。
我的docker-compose.yml
version: '3.1'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- D:/CODEARENA/wordpress/local_docker_vols/mysql:/var/lib/mysql
wordpress:
depends_on:
- db
image: wordpress
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- D:/CODEARENA/wordpress/local_docker_vols/wordpress:/var/www/html
我能够使用
从主机访问 WordPress 安装http://localhost:8080
但是当我从 docker-desktop 进入 WordPress 容器的终端时,以下卷曲不起作用
卷曲http://localhost:8080 卷曲 http://wordpress:80
有人可以解释为什么这不起作用吗?我也厌倦了暴露端口,不工作。
容器中的服务器正在侦听端口 80。因此,从 Wordpress 容器内部,它必须是
curl http://localhost:80
或 curl http://wordpress:80
。您可能看不到来自curl 的响应,因为默认情况下它不遵循重定向。尝试按 curl -L http://wordpress:80
跟踪重定向,或按 curl -v http://wordpress:80
查看有关请求的其他信息。
我设法通过将主机名添加到启动容器的命令行来修复我的容器。
例如
podman run /
--detach /
--name mycontainer --hostname myhost.fqn.whatever /
--publish 10.1.2.3:8080:80 /
--publish 10.1.2.3:8443:443 /
--volume /containers/podman/wordpress/var/www/html:/var/www/html:Z /
docker.io/library/wordpress
这具有将 myhost 添加到容器内的 /etc/hosts 的效果
理想情况下,这需要添加到 docker 文件中,但我不是专家。
希望这有帮助