如何在 Arch Linux 无头服务器上安装 ArangoDB Docker?
How to install ArangoDB Docker on an Arch Linux headless server?
我想在我通过 ssh 访问的 Arch Linux 机器上为 Docker 安装 A运行goDB。 A运行goDB Docker 下载地址:
此 A运行goDb 不会成为集群的一部分,并且没有活动的故障转移。 A运行goDB 配置和数据库需要持久化。
我需要通过 ssh 使用 a运行go 命令行工具(a运行gosh、a运行goimp 等)访问它。我们需要通过端口 8529(A运行goDB 的默认值)从局域网对 A运行go 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
Hello from Docker!
This message shows that your installation appears to be working correctly.
接下来我运行这个命令:
docker run -e ARANGO_NO_AUTH -d --name arangodb-instance arangodb
这产生了预期的标识符。但是,似乎没有任何容器是 运行.
sudo docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 2
A运行goDB 无法在 http://localhost:8529
访问
运行宁
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
,-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
注意,在执行docker run
时,arangodb/arangodb:3.4.0
而不是arangodb/arangodb
,这是最好的做法,避免使用运行没有指定版本的容器,它将拉取 arangodb/arangodb:latest
,这可能会导致您的暂存或产品可以拉取比开发版本更新的版本,如果较新的版本是次要或主要的,这可能是一个问题
也永远不会 运行 arangodb with ARANGO_NO_AUTH=1
在生产中或在可公开访问的服务器上
有关 Docker 的更多详细信息位于 https://hub.docker.com/_/arangodb/
我想在我通过 ssh 访问的 Arch Linux 机器上为 Docker 安装 A运行goDB。 A运行goDB Docker 下载地址:
此 A运行goDb 不会成为集群的一部分,并且没有活动的故障转移。 A运行goDB 配置和数据库需要持久化。
我需要通过 ssh 使用 a运行go 命令行工具(a运行gosh、a运行goimp 等)访问它。我们需要通过端口 8529(A运行goDB 的默认值)从局域网对 A运行go 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
Hello from Docker! This message shows that your installation appears to be working correctly.
接下来我运行这个命令:
docker run -e ARANGO_NO_AUTH -d --name arangodb-instance arangodb
这产生了预期的标识符。但是,似乎没有任何容器是 运行.
sudo docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 2
A运行goDB 无法在 http://localhost:8529
访问运行宁
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
,-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
注意,在执行docker run
时,arangodb/arangodb:3.4.0
而不是arangodb/arangodb
,这是最好的做法,避免使用运行没有指定版本的容器,它将拉取 arangodb/arangodb:latest
,这可能会导致您的暂存或产品可以拉取比开发版本更新的版本,如果较新的版本是次要或主要的,这可能是一个问题
也永远不会 运行 arangodb with ARANGO_NO_AUTH=1
在生产中或在可公开访问的服务器上
有关 Docker 的更多详细信息位于 https://hub.docker.com/_/arangodb/