11---
22title : Install IPFS Kubo inside Docker
33description : You can run IPFS inside Docker to simplify your deployment processes, and horizontally scale your IPFS infrastructure.
4+ current-ipfs-version : v0.32.1
45---
56
67# Install IPFS Kubo inside Docker
@@ -20,7 +21,7 @@ You can run Kubo IPFS inside Docker to simplify your deployment processes, as we
20211. Start a container running ipfs and expose ports ` 4001` (P2P TCP/QUIC transports), ` 5001` (RPC API) and ` 8080` (Gateway):
2122
2223 ` ` ` shell
23- docker run -d --name ipfs_host -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:latest
24+ docker run -d --name ipfs_host -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:v0.32.1
2425 ` ` `
2526
2627 ::: danger NEVER EXPOSE THE RPC API TO THE PUBLIC INTERNET
@@ -70,7 +71,7 @@ You can run Kubo IPFS inside Docker to simplify your deployment processes, as we
7071When starting a container running ipfs for the first time with an empty data directory, it will call ` ipfs init` to initialize configuration files and generate a new keypair. At this time, you can choose which profile to apply using the ` IPFS_PROFILE` environment variable:
7172
7273` ` ` shell
73- docker run -d --name ipfs_host -e IPFS_PROFILE=server -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:latest
74+ docker run -d --name ipfs_host -e IPFS_PROFILE=server -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:v0.32.1
7475` ` `
7576
7677# # Customizing your node
@@ -118,22 +119,22 @@ Example:
118119docker run # (....)
119120 --cpus="4.0" -e GOMAXPROCS=4 \
120121 --memory="8000m" -e GOMEMLIMIT=7500MiB \
121- ipfs/kubo:latest
122+ ipfs/kubo:v0.32.1
122123` ` `
123124
124125# # Private swarms inside Docker
125126
126127It is possible to initialize the container with a swarm key file (` /data/ipfs/swarm.key` ) using the variables ` IPFS_SWARM_KEY` and ` IPFS_SWARM_KEY_FILE` . The ` IPFS_SWARM_KEY` creates ` swarm.key` with the contents of the variable itself, while ` IPFS_SWARM_KEY_FILE` copies the key from a path stored in the variable. The ` IPFS_SWARM_KEY_FILE` ** overwrites** the key generated by ` IPFS_SWARM_KEY` .
127128
128129` ` ` shell
129- docker run -d --name ipfs_host -e IPFS_SWARM_KEY=< your swarm key> -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:latest
130+ docker run -d --name ipfs_host -e IPFS_SWARM_KEY=< your swarm key> -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:v0.32.1
130131` ` `
131132
132133The swarm key initialization can also be done using docker secrets, and requires ` docker swarm` or ` docker-compose` :
133134
134135` ` ` shell
135136cat your_swarm.key | docker secret create swarm_key_secret -
136- docker run -d --name ipfs_host --secret swarm_key_secret -e IPFS_SWARM_KEY_FILE=/run/secrets/swarm_key_secret -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:latest
137+ docker run -d --name ipfs_host --secret swarm_key_secret -e IPFS_SWARM_KEY_FILE=/run/secrets/swarm_key_secret -v $ipfs_staging :/export -v $ipfs_data :/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:v0.32.1
137138` ` `
138139
139140# # Key rotation inside Docker
@@ -142,10 +143,10 @@ It is possible to do key rotation in an ephemeral container that is temporarily
142143
143144` ` ` shell
144145# given container named 'ipfs-test' that persists repo at /path/to/persisted/.ipfs
145- docker run -d --name ipfs-test -v /path/to/persisted/.ipfs:/data/ipfs ipfs/kubo:latest
146+ docker run -d --name ipfs-test -v /path/to/persisted/.ipfs:/data/ipfs ipfs/kubo:v0.32.1
146147docker stop ipfs-test
147148
148149# key rotation works like this (old key saved under 'old-self')
149- docker run --rm -it -v /path/to/persisted/.ipfs:/data/ipfs ipfs/kubo:latest key rotate -o old-self -t ed25519
150+ docker run --rm -it -v /path/to/persisted/.ipfs:/data/ipfs ipfs/kubo:v0.32.1 key rotate -o old-self -t ed25519
150151docker start ipfs-test # will start with the new key
151152` ` `
0 commit comments