influxdata / influxdata/influxdb

Cannot access server from outside container when using docker image on ARM64 machine

Open
#21,312 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
31.7k
Forks
3.7k
Avg merge
13h 37m
Merged PRs (30d)
8

Description

Steps to reproduce:
List the minimal actions needed to reproduce the behavior.

  1. Standup Docker container using influxdb:alpine or latest image on arm64 machine, Expose port 8086, mount a vol to /var/lib/influxdb2
  2. Try to access the service from outside the container e.g. http://localhost:8086 or better yet http://<host-machine-ip>:8086 get connection refused.
  3. Get a shell inside the container docker exec -it <container-id> /bin/sh install curl, curl http://localhost:8086 you get a response.
  4. You can also try running influx ping cmd you'll get OK

Expected behavior:
Service should allow/respond to incoming request on all intefaces.
http-bind-address is set to 0.0.0.0:8086 in config file.

Actual behavior:
Get connection refused when accessing from outside the container.
firewall settings were checked, even explicit rule was added to open port on host machine. Still no access.

Note: same exact stack works without issues on amd64 machine inside docker with same configuration.

Environment info:

  • System info: Linux 4.4.126-rockchip-ayufan-239 aarch64
  • InfluxDB version: InfluxDB 2.0.5 (git: 741389781e) build_date: 2021-04-27T17:57:07Z
  • Other relevant environment details: Docker Swarm:
 Engine:
  Version:          19.03.12
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       48a6621
  Built:            Mon Jun 22 15:45:33 2020
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Config:
http-bind-address: 0.0.0.0:8086

Logs:

lvl=info msg="Welcome to InfluxDB" log_id=0Tmbcfkl000 version=2.0.5 commit=741389781e build_date=2021-04-27T17:57:07Z
lvl=info msg="Resources opened" log_id=0Tmbcfkl000 service=bolt path=/var/lib/influxdb2/influxd.bolt
lvl=info msg="Bringing up metadata migrations" log_id=0Tmbcfkl000 service=migrations migration_count=15
lvl=info msg="Using data dir" log_id=0Tmbcfkl000 service=storage-engine service=store path=/var/lib/influxdb2/engine/data
lvl=info msg="Compaction settings" log_id=0Tmbcfkl000 service=storage-engine service=store max_concurrent_compactions=2 throughput_bytes_per_second=50331648 throughput_bytes_per_second_burst=50331648
lvl=info msg="Open store (start)" log_id=0Tmbcfkl000 service=storage-engine service=store op_name=tsdb_open op_event=start
lvl=info msg="Open store (end)" log_id=0Tmbcfkl000 service=storage-engine service=store op_name=tsdb_open op_event=end op_elapsed=0.333ms
lvl=info msg="Starting retention policy enforcement service" log_id=0Tmbcfkl000 service=retention check_interval=30m
lvl=info msg="Starting precreation service" log_id=0Tmbcfkl000 service=shard-precreation check_interval=10m advance_period=30m
lvl=info msg="Starting query controller" log_id=0Tmbcfkl000 service=storage-reads concurrency_quota=10 initial_memory_bytes_quota_per_query=9223372036854775807 memory_bytes_quota_per_query=9223372036854775807 max_memory_bytes=0 queue_size=10
lvl=info msg="Configuring InfluxQL statement executor (zeros indicate unlimited)." log_id=0Tmbcfkl000 max_select_point=0 max_select_series=0 max_select_buckets=0
lvl=info msg=Starting log_id=0Tmbcfkl000 service=telemetry interval=8h
lvl=info msg=Listening log_id=0Tmbcfkl000 service=tcp-listener transport=http addr=0.0.0.0:8086 port=8086```

__Performance:__

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with the influxdb:alpine or latest Docker image on an ARM64 host, using the reported http-bind-address and port 8086 configuration. Compare container networking and startup behavior with amd64, using the Docker and InfluxDB logs as the entry points. Done means requests from the host or another machine reach the service on port 8086 while the existing in-container checks still succeed.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, linux
Domain
databases, infrastructure, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.