Docker MySQL无法连接到容器

零字节

我有用于创建mysql映像的docker-compose文件,并将端口公开给3306,但是当我尝试安装CMS时,出现了无法连接数据库的错误。我尝试扫描端口3306,并向我显示它已打开,因此mysql正在运行。

为什么两个Docker容器看不到彼此?

这是我的docker-compose文件:

phpfpm:
  restart: always
  extends:
    file: php-fpm-5.6.yml
    service: phpfpm
  links:
    - db:db

nginx:
  restart: always
  image: nginx
  ports:
    - "8000:80"
  links:
    - phpfpm:phpfpm
  volumes:
    - ./nginx/vhost.conf:/etc/nginx/conf.d/default.conf
    - ./app:/var/www/html
    - ./log/nginx:/var/log/nginx

db:
  restart: always
  image: mysql
  ports:
    - "3306:3306"
  environment:
    MYSQL_ROOT_PASSWORD: 123456
    MYSQL_USER: user
    MYSQL_PASSWORD: password
    MYSQL_DATABASE: database
犹太人

要连接到数据库,请使用您提供的链接/别名作为主机名。因此,您的CMS可以使用db主机名和端口3306连接到MySQL

您将无法连接到localhost或127.0.0.1,因为“ localhost”是每个容器中的localhost ,因此,在phpfpm容器中使用“ localhost”将尝试连接到phpfpm容器中的MySQL数据库,但是那里没有服务器在运行。

请注意,如果您仅从链接的容器内部连接到数据库,则不必发布"3306":"3306")MySQL端口。发布端口会在公共网络接口(可能是“ Internet”)上公开MySQL。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章