Dragonfly Quick Start document aims to help you to quick start Dragonfly journey. This experiment is quite easy and simplified.
If you are using Dragonfly in your production environment to handle production image distribution, please refer to supernode and dfget's detailed production parameter configuration.
All steps in this document is doing on the same machine using the docker container, so make sure the docker container engine installed and started on your machine. You can also refer to the documentation: multi-machine deployment to experience Dragonfly.
docker run -d --name supernode \
--restart=always \
-p 8001:8001 \
-p 8002:8002 \
-v /home/admin/supernode:/home/admin/supernode \
dragonflyoss/supernode:1.0.2
SUPERNODE_IP=`docker inspect supernode -f '{{.NetworkSettings.Networks.bridge.IPAddress}}'`
docker run -d --name dfclient \
--restart=always \
-p 65001:65001 \
-v $HOME/.small-dragonfly:/root/.small-dragonfly \
dragonflyoss/dfclient:1.0.2 --registry https://index.docker.io --node $SUPERNODE_IP
NOTE:
--registry
parameter specifies the mirrored image registry address, and https://index.docker.io
is the address of official image registry, you can also set it to the other non-https image registries.--node
parameter specifies the supernode's address in the format of HOST:IP. And the default value 8002
will be used if the port is not specified. Here we use docker inspect
to get the ip of supernode container as the host value. Since the supernode container exposes its ports, you can specify this parameter to node ip address as well.We need to modify the Docker Daemon configuration to use the Dragonfly as a pull through registry.
registry-mirrors
in the configuration file/etc/docker/daemon.json
.{
"registry-mirrors": ["http://127.0.0.1:65001"]
}
Tip: For more information on /etc/docker/daemon.json
, see Docker documentation.
systemctl restart docker
Through the above steps, we can start to validate if Dragonfly works as expected.
And you can pull the image as usual, for example:
docker pull nginx:latest
You can execute the following command to check if the nginx image is distributed via Dragonfly.
docker exec dfclient grep 'downloading piece' /root/.small-dragonfly/logs/dfclient.log
If the output of command above has content like
2019-03-29 15:49:53.913 INFO sign:96027-1553845785.119 : downloading piece:{"taskID":"00a0503ea12457638ebbef5d0bfae51f9e8e0a0a349312c211f26f53beb93cdc","superNode":"127.0.0.1","dstCid":"127.0.0.1-95953-1553845720.488","range":"67108864-71303167","result":503,"status":701,"pieceSize":4194304,"pieceNum":16}
then Dragonfly works successfully.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。