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