1
1
---
2
2
title : Install IPFS Kubo inside Docker
3
3
description : You can run IPFS inside Docker to simplify your deployment processes, and horizontally scale your IPFS infrastructure.
4
+ current-ipfs-version : v0.32.1
4
5
---
5
6
6
7
# Install IPFS Kubo inside Docker
@@ -20,7 +21,7 @@ You can run Kubo IPFS inside Docker to simplify your deployment processes, as we
20
21
1. Start a container running ipfs and expose ports ` 4001` (P2P TCP/QUIC transports), ` 5001` (RPC API) and ` 8080` (Gateway):
21
22
22
23
` ` ` 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
24
25
` ` `
25
26
26
27
::: 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
70
71
When 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:
71
72
72
73
` ` ` 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
74
75
` ` `
75
76
76
77
# # Customizing your node
@@ -118,22 +119,22 @@ Example:
118
119
docker run # (....)
119
120
--cpus="4.0" -e GOMAXPROCS=4 \
120
121
--memory="8000m" -e GOMEMLIMIT=7500MiB \
121
- ipfs/kubo:latest
122
+ ipfs/kubo:v0.32.1
122
123
` ` `
123
124
124
125
# # Private swarms inside Docker
125
126
126
127
It 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` .
127
128
128
129
` ` ` 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
130
131
` ` `
131
132
132
133
The swarm key initialization can also be done using docker secrets, and requires ` docker swarm` or ` docker-compose` :
133
134
134
135
` ` ` shell
135
136
cat 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
137
138
` ` `
138
139
139
140
# # Key rotation inside Docker
@@ -142,10 +143,10 @@ It is possible to do key rotation in an ephemeral container that is temporarily
142
143
143
144
` ` ` shell
144
145
# 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
146
147
docker stop ipfs-test
147
148
148
149
# 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
150
151
docker start ipfs-test # will start with the new key
151
152
` ` `
0 commit comments