如何将文件映射到ipfs docker容器

时间:2019-10-31 12:02:33

标签: docker ipfs

我有一个运行ipfs的docker容器,但由于无法识别本地文件,添加文件时出错。我想知道是否有人知道可能是什么原因-

buntu@ip-172-31-39-89:~/.ipfs$ ll
total 76
drwxrwxr-x  8 ubuntu ubuntu  4096 Oct 31 11:38 ./
drwxr-xr-x 11 ubuntu ubuntu  4096 Oct 31 11:28 ../
-rw-r--r--  1 ubuntu users     21 Oct 31 11:32 api
drwxr-xr-x 18 ubuntu ubuntu  4096 Oct 31 11:32 blocks/
-rw-rw----  1 ubuntu ubuntu  4342 Oct 28 10:33 config
drwxr-xr-x  2 ubuntu ubuntu  4096 Oct 31 11:32 datastore/
-rw-------  1 ubuntu ubuntu   190 Oct 25 11:34 datastore_spec
-rw-rw-r--  1 ubuntu ubuntu   299 Oct 30 15:28 docker-compose.yml
drwxrwxr-x  2 ubuntu ubuntu  4096 Oct 30 15:45 ipfs-data/
drwxrwxr-x  2 ubuntu ubuntu  4096 Oct 30 15:44 ipfs-staging/
drwxr-xr-x  2 root   root    4096 Oct 30 15:26 ipfsdata/
drwx------  2 ubuntu ubuntu  4096 Oct 25 11:34 keystore/
-rw-r--r--  1 root   root       0 Oct 31 11:38 kkk
-rw-r--r--  1 ubuntu users      0 Oct 31 11:32 repo.lock
-rw-rw-r--  1 ubuntu ubuntu    95 Oct 28 10:43 swarm.key
-rw-rw-r--  1 ubuntu ubuntu 10294 Oct 31 11:26 t
-rw-rw-r--  1 ubuntu ubuntu    14 Oct 31 10:58 tet
-rw-r--r--  1 ubuntu ubuntu     2 Oct 25 11:34 version
ubuntu@ip-172-31-39-89:~/.ipfs$ sudo docker exec ipfs-node ipfs add tet
Error: lstat tet: no such file or directory

映射如下-

sudo docker run -d --name ipfs-node \
  -v /tmp/ipfs-docker-staging:/export -v /home/ubuntu/.ipfs:/data/ipfs \
  -p 8080:8080 -p 4001:4001 -p 127.0.0.1:5001:5001 \
  jbenet/go-ipfs:latest

1 个答案:

答案 0 :(得分:1)

要在此处添加文件,必须确保文件在容器中。

当执行<?php $receiver = $_POST['FlagID']; echo $receiver; ?> 时,实际上是在告诉ipfs添加容器WORKDIR中存在的tet文件,而与执行命令的位置无关。因此,除非该文件实际存在于sudo docker exec ipfs-node ipfs add tet中,否则将找不到该文件。

在您的情况下,必须将文件存储在WORKDIR/tmp/ipfs-docker-staging中,然后必须在docker容器内提供路径。例如

/home/ubuntu/.ipfs