【问题标题】:How to install ArangoDB Docker on an Arch Linux headless server?如何在 Arch Linux 无头服务器上安装 ArangoDB Docker?
【发布时间】:2018-12-22 00:11:11
【问题描述】:

我想在我通过 ssh 访问的 Arch Linux 机器上安装 ArangoDB for Docker。 ArangoDB Docker 下载可在此处找到:

Docker - ArangoDB

此 ArangoDb 不会成为集群的一部分,并且没有活动的故障转移。 ArangoDB 配置和数据库需要持久化。

我需要使用 arango 命令行工具(arangosh、arangoimp 等)通过 ssh 访问它。我们需要从局域网的 8529 端口(ArangoDB 的默认端口)上对 Arango WebUI 进行 http 访问。

我已经完成了这些步骤:

sudo pacman -Syu docker
sudo systemctl enable docker
sudo systemctl start docker
sudo docker info

Docker 安装正确。

Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.0-ce
Storage Driver: btrfs
Build Version: Btrfs v4.19 
Library Version: 102
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.19.11-arch1-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 12
Total Memory: 62.82GiB
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

我安装了 hello-world docker 容器:

sudo docker run -i -t hello-world

来自 Docker 的您好! 此消息表明您的安装似乎工作正常。

接下来我运行了这个命令:

docker run -e ARANGO_NO_AUTH -d --name arangodb-instance arangodb

这产生了预期的标识符。但是,似乎没有任何容器正在运行。

sudo docker info
Containers: 4
 Running: 0
 Paused: 0
 Stopped: 4
Images: 2

http://localhost:8529 无法访问 ArangoDB

【问题讨论】:

    标签: docker installation arangodb


    【解决方案1】:

    运行

    docker run -e ARANGO_NO_AUTH -d --name arangodb-instance arangodb
    

    将产生标识符,但 arangod 将退出并出现错误,运行

    docker ps -a
    

    在那里你会看到你的容器的状态

    Exited (1) 5 seconds ago
    

    运行

    docker logs arangodb-instance
    

    你会明白它为什么退出

    automatically choosing storage engine
    error: database is uninitialized and password option is not specified
    You need to specify one of ARANGO_ROOT_PASSWORD, ARANGO_NO_AUTH and ARANGO_RANDOM_ROOT_PASSWORD
    

    所以

    要在没有密码的情况下启动 arango,您需要声明

    -e ARANGO_NO_AUTH=1
    

    你忘了=1-eKEY=VALUE

    要远程访问arango,需要暴露端口

    -p 8529:8529
    

    要持久化数据,您需要将它们映射到您的主机路径或卷(卷是最佳做法)

    -v arangodb3:/var/lib/arangodb3
    

    所以

    为了保持音量,运行

    docker volume create arangodb3
    

    然后

    docker run -d \
    -e ARANGO_NO_AUTH=1 \
    -p 8529:8529 \
    -v arangodb3:/var/lib/arangodb3 \
    --name arangodb-instance \
    arangodb/arangodb:3.4.0
    

    在你运行这些之前,你需要删除现有的同名容器

    docker stop arangodb-instance
    docker rm arangodb-instance
    

    运行 arangosh 等运行

    docker exec -it arangodb-instance arangosh
    

    注意,在执行 docker run 时,arangodb/arangodb:3.4.0 而不是 arangodb/arangodb,这是最佳实践,避免运行没有指定版本的容器,它会拉动 arangodb/arangodb:latest,这可能会导致您的 staging 或 prod可以拉比你在 dev 上的新版本,如果新版本是次要或主要的,这可能是一个问题

    也永远不要在生产环境或可公开访问的服务器上使用 ARANGO_NO_AUTH=1 运行 arangodb

    有关 Docker 的更多详细信息,请访问 https://hub.docker.com/_/arangodb/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 2017-12-23
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      相关资源
      最近更新 更多