I’ve downloaded the docker cardano-node image, but I’m confused how to run the docker using the pre-loaded configuration and the NETWORK env, based on this official site: Docker Hub
From the example:
docker run -v /data -e NETWORK=mainnet inputoutput/cardano-node
It returns a error message sicne I didn’t do the pre-configuration:
cardano-node: Network.Socket.bind: does not exist (No such file or directory)
Normally, I map the volume folder to my local folder, why in this case we pass only /data? How do we perform the pre-configuration?
Thanks!
Try to add another volume which stores the socket file docker run --rm -v /ipc -v /data -e NETWORK=mainnet inputoutput/cardano-node
when running the the docker the cardano-node process started with the flag --socket-path /ipc/node.socket - this flag tells where the socket file is located - so by now I dont know why it does not create it if the folder is not mounted volume - but at least you have a workaround…
Just went through the list of the issues - but those mainly kubernetes or convenient issues…
Docker image main purpose is to get the cardano-node binary… from official sources.
Then it is up to you how to integrate that image into your environment.
btw just registered this issue on github:
Thanks @laplasz! It works with the -v /ipc. If I use -v ipc:/ipc, I can see that in the ipc folder the node.socket is created.
Furthermore, using the command docker run --rm -v /ipc -v /data -e NETWORK=mainnet inputoutput/cardano-node, it sets the host ip to the localhost. From the another example command on the docker page, it suggests to use --config /configuration/configuration.yaml --topology /configuration/topology.json. However, both files are in the docker file. How can I see and edit the files outside the docker image?
If IOHK can create a good comprehensive documentation about the cardano in general and the cardano-node, why didn’t they write more information for this docker image. I found a lot of other docker images with better information.
so to use the host network - there is another flag: --network host but you need to only expose the cardano listening port with flag: –expose=3001
to able to provide your own configs you need to mount the config folder then providing the mounted configs to cardano-node - that what the following command doing:
docker run -v /home/user/configuration/defaults:/configuration \
inputoutput/cardano-node run \
--config /configuration/configuration.yaml \
--topology /configuration/topology.json \
--database-path /db
more information about docker run and volumes here: