我想在我通过ssh访问的Arch Linux计算机上安装Docker的ArangoDB。在此处可以找到ArangoDB Docker下载:
此ArangoDb将不属于群集,并且没有活动的故障转移。 ArangoDB配置和数据库将需要是持久的。
我将需要通过ssh使用arango命令行工具(arangosh,arangoimp等)访问它。而且,我们需要从局域网的端口8529(ArangoDB的默认端口)上通过HTTP访问Arango WebUI。
我已完成以下步骤:
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
答案 0 :(得分:3)
运行
docker run -e ARANGO_NO_AUTH -d --name arangodb-instance arangodb
将产生标识符,但arangod将会错误退出,运行
docker ps -a
您将看到带有STATUS的容器
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
,-e
是KEY=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
注意,执行arangodb/arangodb:3.4.0
时最好用arangodb/arangodb
而不是docker run
,避免运行没有指定版本的容器,它将拉arangodb/arangodb:latest
可能会导致您的暂存或产品可以拉出比开发人员更高的版本,如果较新的版本为次要或主要版本,则可能会出现问题
也永远不会在生产环境或可公开访问的服务器上与ARANGO_NO_AUTH=1
一起运行arangodb
有关Docker的更多详细信息,请访问https://hub.docker.com/_/arangodb/