Docker 无法访问公开端口站点
Docker exposing ports site can't be reached
我已经在我的 docker 文件中公开了所需的端口,并将它们映射到我的 docker-compose.yml
.
如果我创建没有 docker-compose.yml 的容器,我可以访问所有内容,但是如果我使用 docker-compose.yml
文件,我无法通过 [=21 访问 3 个图像中的 2 个=]请求。
但是根据 docker port <container-name>
映射端口:
bitmovin@bitmovin-VirtualBox:~/Documents$ docker端口php-容器8080:
0.0.0.0:8080
bitmovin@bitmovin-VirtualBox:~/Documents$docker端口php-容器:
8080/tcp -> 0.0.0.0:8080
bitmovin@bitmovin-VirtualBox:~/Documents$ docker port comp-container:
8080/tcp -> 0.0.0.0:8070
bitmovin@bitmovin-VirtualBox:~/Documents$ docker port phpmyadmin-container:
8080/tcp -> 0.0.0.0:8090
我不知道为什么我不能访问 phpmyadmin-container
和 php-container
但如果我使用 docker-compose
文件则 comp-container
。
我是不是漏掉了什么重要的东西?
php-图片:
FROM php:7.0-apache
EXPOSE 8080
COPY Frontend/ /var/www/html/aw3somevideo/
COPY Frontend/ /var/www/html/
RUN chown -R www-data:www-data /var/www/html
RUN chmod -R 755 /var/www/html
RUN docker-php-ext-install mysqli
RUN php -i | grep -F .default_socket
合成图像:
FROM java:openjdk-8u91-jdk
EXPOSE 8070
CMD java -jar encoding-comparison-1.0.jar
ADD encoding-comparison-1.0.jar /encoding-comparison-1.0.jar
phpmyadmin-image:
FROM phpmyadmin/phpmyadmin
EXPOSE 8090
docker-compose.yml:
db:
image: mysql-image
ports:
- "3306:3306"
volumes:
- /var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=Bitmovin
- DB_NAME=aw3somevideo
- DB_USER=Bitmovin
- DB_PASS=Bitmovin
container_name: mysql-container
admin:
image: phpmyadmin-image
ports:
- "8090:8080"
links:
- db
container_name: phpmyadmin-container
backend:
image: comp-image
ports:
- "8070:8080"
volumes:
- ./src:/var/www/backend
links:
- db
container_name: comp-container
php:
image: php-image
volumes:
- ./src:/var/www/html
links:
- db
ports:
- "8080:8080"
container_name: php-container
解决方案是将 admin
和 php
的端口分别从 "8080:8080"
和 "8090:8080"
更改为 "8080:80"
和 "8090:80"
。
我已经在我的 docker 文件中公开了所需的端口,并将它们映射到我的 docker-compose.yml
.
如果我创建没有 docker-compose.yml 的容器,我可以访问所有内容,但是如果我使用 docker-compose.yml
文件,我无法通过 [=21 访问 3 个图像中的 2 个=]请求。
但是根据 docker port <container-name>
映射端口:
bitmovin@bitmovin-VirtualBox:~/Documents$ docker端口php-容器8080:
0.0.0.0:8080
bitmovin@bitmovin-VirtualBox:~/Documents$docker端口php-容器:
8080/tcp -> 0.0.0.0:8080
bitmovin@bitmovin-VirtualBox:~/Documents$ docker port comp-container:
8080/tcp -> 0.0.0.0:8070
bitmovin@bitmovin-VirtualBox:~/Documents$ docker port phpmyadmin-container:
8080/tcp -> 0.0.0.0:8090
我不知道为什么我不能访问 phpmyadmin-container
和 php-container
但如果我使用 docker-compose
文件则 comp-container
。
我是不是漏掉了什么重要的东西?
php-图片:
FROM php:7.0-apache
EXPOSE 8080
COPY Frontend/ /var/www/html/aw3somevideo/
COPY Frontend/ /var/www/html/
RUN chown -R www-data:www-data /var/www/html
RUN chmod -R 755 /var/www/html
RUN docker-php-ext-install mysqli
RUN php -i | grep -F .default_socket
合成图像:
FROM java:openjdk-8u91-jdk
EXPOSE 8070
CMD java -jar encoding-comparison-1.0.jar
ADD encoding-comparison-1.0.jar /encoding-comparison-1.0.jar
phpmyadmin-image:
FROM phpmyadmin/phpmyadmin
EXPOSE 8090
docker-compose.yml:
db:
image: mysql-image
ports:
- "3306:3306"
volumes:
- /var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=Bitmovin
- DB_NAME=aw3somevideo
- DB_USER=Bitmovin
- DB_PASS=Bitmovin
container_name: mysql-container
admin:
image: phpmyadmin-image
ports:
- "8090:8080"
links:
- db
container_name: phpmyadmin-container
backend:
image: comp-image
ports:
- "8070:8080"
volumes:
- ./src:/var/www/backend
links:
- db
container_name: comp-container
php:
image: php-image
volumes:
- ./src:/var/www/html
links:
- db
ports:
- "8080:8080"
container_name: php-container
解决方案是将 admin
和 php
的端口分别从 "8080:8080"
和 "8090:8080"
更改为 "8080:80"
和 "8090:80"
。