首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头:无法连接到其他容器

码头:无法连接到其他容器
EN

Stack Overflow用户
提问于 2022-04-12 16:33:49
回答 2查看 272关注 0票数 -1

docker-compose.yml

代码语言:javascript
复制
version: '3'

volumes:
  wp-assets:

services:
  mariadb:
    build: ./requirements/mariadb
    environment:
      - MYSQL_ROOT_HOST=${MYSQL_ROOT_HOST}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}

    ports:
      - "127.0.0.1:3306:3306"
      - "127.0.0.1:9999:9999" # test

  wordpress:
    environment:
      - WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST}
      - WORDPRESS_DB_USER=${WORDPRESS_DB_USER}
      - WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD}
      - WORDPRESS_DB_NAME=${WORDPRESS_DB_NAME}
      - WORDPRESS_TABLE_PREFIX=${WORDPRESS_TABLE_PREFIX}
      - WORDPRESS_AUTH_KEY=${WORDPRESS_AUTH_KEY}
      - WORDPRESS_SECURE_AUTH_KEY=${WORDPRESS_SECURE_AUTH_KEY}
      - WORDPRESS_LOGGED_IN_KEY=${WORDPRESS_LOGGED_IN_KEY}
      - WORDPRESS_NONCE_KEY=${WORDPRESS_NONCE_KEY}
      - WORDPRESS_AUTH_SALT=${WORDPRESS_AUTH_SALT}
      - WORDPRESS_SECURE_AUTH_SALT=${WORDPRESS_SECURE_AUTH_SALT}
      - WORDPRESS_LOGGED_IN_SALT=${WORDPRESS_LOGGED_IN_SALT}
      - WORDPRESS_NONCE_SALT=${WORDPRESS_NONCE_SALT}
    volumes:
      - wp-assets:/var/wp-assets
    build: ./requirements/wordpress
    ports:
      # host_port == 127.0.0.1:9000, allow only localhost
      - "127.0.0.1:9000:9000"

  nginx:
    #    image: nginx:latest
    depends_on: 
      - wordpress
    volumes:
      - wp-assets:/var/wp-assets
    build: ./requirements/nginx
    ports:
      # host_port == 0.0.0.0:8080, allow all interfaces
      - "8080:80"

mariadb/Dockerfile

代码语言:javascript
复制
FROM debian:buster

# install mariadb-server
RUN apt update && apt install -y mariadb-server

# allow connection from wordpress (host name)
RUN sed -e 's/127.0.0.1/wordpress/' \
        -i '/etc/mysql/mariadb.conf.d/50-server.cnf'

# used for socket
RUN mkdir -p /var/run/mysqld && \
    chown -R mysql:mysql /var/lib/mysql /var/run/mysqld && \
    chmod 777 /var/run/mysqld && \ 
    touch /var/run/mysqld/mysqld.sock

# init db here

COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh

#ENTRYPOINT ["/docker-entrypoint.sh"]
ENTRYPOINT ["tail", "-f"]

我试图将mariadbwordpress (mariadb-client)连接起来,得到了一个错误:Can't connect to MySQL server on 'mariadb'

所以我测试了端口很好。但是,虽然其他容器可以访问其他端口,如nginx:80wordpress:9000,但mariadb端口拒绝连接。

我不知道mariadb容器和其他容器之间有什么区别。有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-12 16:43:54

MariaDB Dockerfile的入口点是

代码语言:javascript
复制
ENTRYPOINT ["tail", "-f"]

所以它实际上不运行MariaDB。

您可能需要将其注释掉,然后再进行注释。

代码语言:javascript
复制
ENTRYPOINT ["/docker-entrypoint.sh"]
票数 2
EN

Stack Overflow用户

发布于 2022-04-13 02:24:55

我对港口感到困惑。我认为每个容器都可以通过opening端口进行通信,但是没有LISTENing端口。Docker ports:只绑定端口,与LISTEN无关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71846256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档