我在aws ec2(亚马逊Linux AMI 2018.03.0)上托管一个wordpress网站。
我使用docker-compose来启动网站,数据库和phpmyadmin。
version: '3.3'
volumes:
data:
networks:
back:
services:
db:
image: mysql:5.7
volumes:
- data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: test
MYSQL_DATABASE: wordpress
MYSQL_USER: test
MYSQL_PASSWORD: test
networks:
- back
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- 80:80
- 443:443
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./html:/var/www/html
container_name: site
networks:
- back
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 3001:80
environment:
PMA_HOST: db
MYSQL_USER: test
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
networks:
- back
如您所见,我将容器中的端口80映射到主机的端口80。这应该使我的IPv4公共IP上的网站可用。我想我的安全组中已经正确配置了入站访问。
我无法在端口80上访问我的网站。当我更改yml文件以将我的容器的端口80映射到我的主机上的8080时,它确实有效。 如何在80端口上提供网站?
续
我以root身份运行docker compose:
sudo which docker-compose
up -d
该网站仍无法访问。
我从/ usr / local / bin中删除了docker-compose并将其安装在/ usr / bin中。 然后我跑了sudo docker-compose up -d 该网站仍无法访问。
我仍然认为它确实与以root身份运行它有关。当我在1024端口上运行它时,我可以找到该网站。我在1024以下的端口上运行它时看不到它。
我应该在哪个目录中安装docker-compose以root身份运行它?
答案 0 :(得分:0)
您可能没有docker compose
作为root
投放。基本上1024
以下的端口是特权端口,因此您需要是root用户才能运行侦听这些端口的进程。
使用sudo
运行docker compose,您应该能够使用端口80和主机公共IPV4地址访问该站点。