{ "info": { "author": "memoryboxes", "author_email": "memoryboxes@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "dockerfly\uff0c\u8ba9\u4f60\u7684\u5bb9\u5668\u66f4\u771f\u5b9e\n=====================================\ndockerfly\u662f\u4e3a\u4e86\u8ba9\u4f60\u7684container\u8fd0\u884c\u8d77\u6765\"\u66f4\u50cf\"\u4e00\u53f0\u771f\u6b63\u7684\u865a\u62df\u673a\uff0c\u5bf9\u7f51\u7edc\u90e8\u5206\u505a\u70b9\u5305\u88c5\u7684\u5c0f\u5de5\u5177\u3002\ndockerfly\u4e0d\u662f\u5927\u800c\u5168\u7684\u5bb9\u5668\u7ba1\u7406\u5de5\u5177\uff0c\u5982\u679c\u4f60\u8981\u7ba1\u740610\u53f0\u4ee5\u4e0a\u7684\u7269\u7406\u673a\uff0c\u6216\u8005\u8fd0\u7ef430\u4e2a\u4ee5\u4e0a\u7684\u670d\u52a1\uff0c\u90a3\u4e48dockerfly\u4e0d\u9002\u5408\u4f60\u3002\n\u5982\u679c\u4f60\u6bcf\u5929\u4e3a\u4e86\u5f00\u53d1\u6d4b\u8bd5\u73af\u5883\u7684\u7edf\u4e00\u800c\u5fc3\u70e6\uff0c\u5982\u679c\u4f60\u60f3\u5728\u81ea\u5df1\u7684\u7b14\u8bb0\u672c\u4e0a\u4e3a\u81ea\u5df1\u7684\u4e0d\u540c\u9879\u76ee\u955c\u50cf\u5206\u95e8\u522b\u7c7b\uff0c\u90a3\u4e48dockerfly\u5c31\u662f\u4e3a\u4f60\u51c6\u5907\u7684\u3002\n\ndockerfly\u4e3a\u4f60\u642d\u5efa\u7a77\u4eba\u7248\u7684vSphere (^_^)\u3002\n\n\u7f18\u8d77\n========================\n\ndocker\u63a8\u8350\u4e00\u4e2acontainer\u5185\u53ea\u8fd0\u884c\u4e00\u4e2a\u8fdb\u7a0b\uff0c\u7f51\u7edc\u90e8\u5206\u540cdocker\u4e3b\u673a\u5171\u4eab\u3002\u4f7f\u7528supervisor\u7ba1\u7406\u591a\u8fdb\u7a0b\u3002\n\u5728\u5f88\u591a\u771f\u5b9e\u573a\u666f\u4e0b\uff0c\u8fd9\u79cd\u65b9\u6cd5\u5c40\u9650\u6027\u5f88\u5927\u3002\n\n\u4f8b\u5982\uff0c\u6211\u6709\u4e00\u4e2a\u9879\u76eeA\uff0c\u91cc\u9762\u5df2\u7ecf\u91c7\u7528\u4e86supervisor\u7ba1\u7406\u591a\u4e2a\u8fdb\u7a0b\uff0c\u53e6\u5916\u5e26\u6709web\uff0c\u6211\u5e0c\u671b\u80fd\u6709docker\u5feb\u901f\u5efa\u7acb\u4e00\u4e2aContainer\uff0c\u7528\u4e8e\u5e73\u65f6\u7684\u6d4b\u8bd5\u548c\u5f00\u53d1\u3002\n\u8fd9\u6837\u4f60\u7684\u9009\u62e9\u53ea\u80fd\u662f:\n\n* \u5efa\u7acb\u7684container\u91c7\u7528\u7aef\u53e3\u6620\u5c04\u7684\u529e\u6cd5\uff0c\u628a80\u7aef\u53e3\u6620\u5c04\u5230docker\u4e3b\u673a\n\n* \u628a\u8fdb\u7a0b\u653e\u5230supervisor\u91cc\u9762\uff0c\u6bcf\u6b21run container\u7684\u65f6\u5019\u542f\u52a8\n\n* \u64cd\u4f5c\u9700\u8981\u7528 `docker exec -i -t bash` \u4e0a\u53bb\n\n\u8fd9\u6837\u7684\u5c40\u9650\u5f88\u660e\u663e\u7684:\n\n* \u8fd9\u53f0container\u6ca1\u6709\u81ea\u5df1\u7684\u5bf9\u5916IP\uff0c\u5f88\u591aTestCase\u8dd1\u8d77\u6765\u4f1a\u5f88\u590d\u6742\n\n* \u6211\u65e0\u6cd5\u540c\u65f6\u542f\u52a8\u591a\u4e2a\u5360\u752880\u7aef\u53e3\u7684container\n\n* \u65e0\u6cd5\u5728\u53e6\u5916\u4e00\u53f0\u673a\u5668\u83b7\u5f97shell\n\n* \u6211\u81ea\u5df1\u8fdb\u7a0b\u7ba1\u7406\u7684supervisor\u548cdocker\u7528\u7684supervisor\u4f1a\u6df7\u5728\u4e00\u8d77\uff0c\u4e0d\u5e72\u51c0\n\n\u89e3\u51b3\u529e\u6cd5\n--------\n\n\u5728container\u4e2d\u5f00\u542fsshd\uff0c\u628a\u5b83\u60f3\u8c61\u6210\u4e00\u53f0\u771f\u6b63\u7684\u865a\u62df\u673a\u3002\n\n[baseimage-docker](http://phusion.github.io/baseimage-docker/)\u4e5f\u505a\u4e86\u4e00\u4e9b\u7c7b\u4f3c\u7684\u5de5\u4f5c\uff0c\u4f46\u662fdockerfly\u5c06\u57fa\u672c\u955c\u50cf\uff0ccontainer\u521b\u5efa\u7b49\u64cd\u4f5c\u7ed3\u5408\u8d77\u6765\uff0c\u66f4\u4e3a\u65b9\u4fbf\u3002\n\n\n\u8b66\u544a\n--------\n\n\u5df2\u7ecf\u6709\u5f88\u591a\u4eba\u8b66\u544a\u8fc7\u8fd9\u79cd\u65b9\u6cd5\u662f\u4e0d\u53ef\u53d6\u7684\uff0c\u56e0\u4e3adocker\u8bde\u751f\u4e4b\u521d\u5e76\u4e0d\u662f\u4e3a\u4e86\u6784\u5efa\u4e00\u4e2aVmware\u7c7b\u7684\u865a\u62df\u673a\u6765\u8bbe\u8ba1\u7684\u3002\n\u8fd9\u6837\u505a\u4f1a\u6709\u5b89\u5168\u6027\u4e0a\u7684\u95ee\u9898\uff0cdockerfly\u5728\u5b9e\u73b0\u7684\u65f6\u5019\u6ca1\u6709\u8fc7\u591a\u8003\u8651\u5b89\u5168\u95ee\u9898\uff0c\u5b83\u53ea\u662f\u5047\u8bbe\u4f60\u5728\u4e00\u53f0\u5b8c\u5168\u7531\u4f60\u63a7\u5236\u7684\u673a\u5668\u4e0a\uff0c\u65b9\u4fbf\u7684\u642d\u5efa\u5f00\u53d1\u6d4b\u8bd5\u73af\u5883\u3002\n\n\u5b89\u88c5:\n========================\n\n* \u63a8\u8350linux\u5185\u68383.18\u4ee5\u4e0a\uff0c\u63a8\u8350\u5f00\u542fdocker overlay\u6587\u4ef6\u7cfb\u7edf\u3002`docker>=1.6`\n\n* pull\u4e00\u4e2a\u5b9e\u9a8c\u955c\u50cf\u4e0b\u6765\n\n ```\n docker pull memorybox/centos6_sshd\n ```\n\n* \u5b89\u88c5dockerfly\n\n ```\n git clone https://github.com/memoryboxes/dockerfly.git && pip install -r dockerfly/requirements.txt\n cd dockerfly && ./run.sh\n ```\n\n* \u5c06\u9700\u8981Attach\u7684\u7269\u7406\u7f51\u5361(\u5982eth1)\u8bbe\u7f6e\u4e3a\u6df7\u6742\u6a21\u5f0f\n\n ```\n ifconfig eth1 promisc\n ```\n\n* \u8bbf\u95ee`http://host:80` \uff0c\u4f1a\u6709\u4e00\u4e2a\u5f88\u7b80\u5355\u7684web\u9875\u9762\uff0c\u4f9b\u4f60\u521b\u5efa/\u5220\u9664\u3001\u542f\u52a8/\u505c\u6b62\u4f60\u7684container\u3002\n \u521b\u5efa\u4e00\u53f0container\u540e\uff0c\u4f60\u53ef\u4ee5\u76f4\u63a5ssh\u767b\u9646\uff0c\u5728\u4e0a\u9762\u50cfVMware\u865a\u62df\u673a\u4e00\u6837\u64cd\u4f5c\u3002\n tcpdump\u4e00\u4e0b\uff0c\u4f60\u53ef\u4ee5\u770b\u5230\u7f51\u7edc\u6570\u636e\u5305\u548c\u771f\u6b63\u7684\u7f51\u5361\u6d41\u91cf\u662f\u4e00\u81f4\u7684\u3002\n\n\u600e\u6837\u5de5\u4f5c:\n========================\n\ndockerfly\u91c7\u7528\u4e86\u5728\u5bb9\u5668\u5185\u521b\u5efaMacvlan\u7f51\u5361\u7684\u529e\u6cd5\u6765\u589e\u5f3adocker\u7684\u7f51\u7edc\u529f\u80fd\u3002\n\n* \u6211\u6709\u4e00\u53f0\u7269\u7406\u673a\u6216\u662fVmware\u865a\u62df\u673a-PhysicalHostA\uff0c\u6709\u4e24\u5757\u7f51\u5361:eth0\u548ceth1\uff0c\u540c\u5728192.168.1\u7f51\u6bb5\uff0c\u662f\u4e92\u901a\u7684\n\n +---------+\n | Physical|\n \\ HostA /\n |\\ /|\n | ------ |\n | eth0 ------ 192.168.1.10/24, gateway:192.168.1.1\n | eth1 ------ 192.168.1.11/24, gateway:192.168.1.1\n +---------+\n\n* \u9996\u5148\u542f\u52a8\u4e00\u53f0docker container\n\n ```\n docker run -i -t xxx /bin/bash\n ```\n\n* \u5728\u7269\u7406\u673a\u4e2d\u521b\u5efa\u4e00\u4e2aMacvlan\u7f51\u5361Attach\u5230eth1\u4e0a\n\n ```\n ip link add MacVlanEthA link eth1 type macvlan mode bridge\n ```\n\n* \u5f97\u5230docker container\u7684pid\uff0c\u7528ip link\u547d\u4ee4\u628a\u865a\u62df\u7f51\u5361\u6620\u5c04\u5230docker\u7684network namespace\u4e2d\n\n ```\n ip link set netns $(docker container pid) MacVlanEthA\n ```\n\n>> docker\u7684pid\u53ef\u4ee5\u7528dockerfly\u63d0\u4f9b\u7684\u811a\u672c\u83b7\u53d6\n\n>> ```\n>> python dockerfly/bin/dockerflyctl.py getpid \n>> ```\n\n* \u4e3aMacVlanEthA\u8bbe\u7f6eIP\uff0c\u8def\u7531\n\n ```\n docker exec $(docker container id) ip route del default\n docker exec $(docker container id) ip addr add 192.168.1.100 dev MacVlanEthA\n docker exec $(docker container id) ip route add default via 192.168.159.1 dev MacVlanEthA\n ```\n\n* \u5728docker container xxx\u5185\u6267\u884c:\n\n ```\n ifconfig\n ```\n\n \u53ef\u4ee5\u770b\u5230MacVlanEthA\u7684ip\u88ab\u8bbe\u7f6e\u4e3a192.168.1.100\n\n* \u8bbe\u7f6e\u7269\u7406\u673aeth1\u4e3a\u6df7\u6742\u6a21\u5f0f\n\n ```\n ifconfig eth1 promisc\n ```\n\n* \u5728\u7269\u7406\u673a\u6267\u884c:\n\n ```\n [PhysicalHostA@localhost]~# ping 192.168.1.100\n PING 192.168.159.1 (192.168.1.100) 56(84) bytes of data.\n 64 bytes from 192.168.1.100: icmp_seq=1 ttl=128 time=0.663 ms\n 64 bytes from 192.168.1.100: icmp_seq=2 ttl=128 time=0.180 ms\n ...\n ```\n\n\n* \u7528\u7c7b\u4f3c\u7684\u65b9\u6cd5\u6dfb\u52a0\u65b0\u7684\u5bb9\u5668\u53ca\u7f51\u5361\uff0c\u6b64\u65f6\u7684\u7f51\u7edc\u7ec4\u6210\u5982\u4e0b\u56fe:\n\n\n +-----------------------------------------------+---------------+\n +---------+ ******* | Physical host Docker |\n | Physical| ** ** | +---------+ +---------+ +---------+ |\n \\ hostA / ** Local ** | | Docker | | Docker | | Docker | |\n |\\ /| ---------> * NetWork * <----------- | \\ hostA / \\ hostB / \\ hostC / |\n | ------ | ** ** | |\\ /| |\\ /| |\\ /| |\n |eth0,eth1| ** ** | | ------ | | ------ | | ------ | |\n +---------+ ******* | | MacVlan | | MacVLan | |...EthC1 | |\n | | EthA | | EthB | | EthC2 | |\n | +---------+ +---------+ +---------+ |\n | 192.168.1.100 192.168.1.101 192.168.1.102 |\n | 192.168.1.103 |\n +-----------------------------------------------+---------------+\n\n* \u5982\u679c\u4f60\u7684container\u5185\u5f00\u542fsshd\u670d\u52a1\u7684\u8bdd\uff0c\u6b64\u65f6\u53ef\u4ee5\u76f4\u63a5\u628a\u8fd9\u4e9bcontainer\u5f53\u4f5cVMWare\u7684\u865a\u62df\u673a\u6765\u7528\u4e86\u3002\n\n>> \u5982\u4f55\u5728\u955c\u50cf\u5185\u5f00\u542fsshd\uff0c\u53ef\u4ee5\u53c2\u8003:\n\n>> https://github.com/tutumcloud/tutum-centos\n\n>> https://github.com/tutumcloud/tutum-ubuntu\n\n* \u5982\u679c\u4f60\u53ea\u662f\u60f3\u7b80\u5355\u8bd5\u7528\u4e00\u4e0b\u7684\u8bdd\uff0c\u6211\u505a\u4e86\u4e00\u4e2a\u57fa\u7840\u955c\u50cf\uff0c\u9ed8\u8ba4\u7528\u6237\u540d/\u5bc6\u7801\u662f:root/rootroot\uff0c\u653e\u5728\n\n https://registry.hub.docker.com/u/memorybox/centos6_sshd/\n\n \u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u83b7\u53d6:\n\n ```\n docker pull memorybox/centos6_sshd\n ```\n\n**dockerfly\u5c31\u662f\u5c06\u4e0a\u9762\u8fd9\u4e9b\u64cd\u4f5c\u505a\u4e86\u4e00\u4e2a\u7b80\u5355\u5c01\u88c5\uff0c\u4f9b\u4f60\u8f7b\u677e\u57301\u79d2\u949f\u542f\u52a8\u4e00\u53f0\u7c7b\u4f3cVmware\u865a\u62df\u673a\u3002**\n\nCaveats\n========================\n\n\u518d\u6b21\u8b66\u793a\u4e00\u4e0b\uff0c\u8fd9\u6837\u505a\u5e76\u4e0d\u662fdocker\u7684\u63a8\u8350\u505a\u6cd5\u3002\u95ee\u9898\u5982\u4e0b:\n\n* \u591a\u4e2a\u865a\u62df\u7f51\u5361\u7ed1\u5b9a\u5230\u4e00\u4e2a\u6df7\u6742\u6a21\u5f0f\u7684\u7269\u7406\u7f51\u5361\u4e0a\uff0c\u4f1a\u6709\u7f51\u7edc\u6027\u80fd\u95ee\u9898\n\n* \u5728container\u4e2d\u5f00\u542fsshd\u670d\u52a1\uff0c\u65e0\u6cd5\u4fdd\u8bc1\u5b89\u5168\u6027\n\n* \u7528\u6237\u4ee5root\u8eab\u4efd\u5728container\u4e2d\u64cd\u4f5c\uff0c\u5bb9\u6613\u5bfc\u81f4\u6240\u6709container\u6302\u6389\n\n* \u6700\u540e\uff0c\u8fd9\u4e9b\u529f\u80fd\u5176\u5b9e\u7528Vagrant\u7b49\u5de5\u5177\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u7684\uff0c\u53ea\u4e0d\u8fc7\u662f\u5b66\u4e60\u6210\u672c\u7684\u5927\u5c0f\u800c\u5df2\n\n\u5982\u679c\u4f60\u4e0dCare\u8fd9\u4e9b\u95ee\u9898\uff0c\u4f60\u4f1a\u611f\u89c9\u4f7f\u7528dockerfly\u521b\u5efa\u7684container\uff0c\u611f\u89c9\u548cVmware\u865a\u62df\u673a\u662f\u4e00\u6837\u7684\uff0c\u800c\u4e14\u4f60\u83b7\u5f97\u4e86\u8fd1\u4f3c\u4e8e\u7269\u7406\u673a\u7684\u6027\u80fd\uff0c\u4ee5\u53ca\u79d2\u7ea7\u522b\u7684\u521b\u5efa/\u5220\u9664container\u7684\u80fd\u529b\u3002\n\n**Different people use Docker for different purposes, so Don't be afraid, but be careful.**\n\nBest Practice:\n========================\n\ndockerfly\u6bd4\u8f83\u9002\u5408\u4e0b\u9762\u51e0\u4e2a\u573a\u666f:\n\n\u6bcf\u65e5\u6784\u5efa\n---------\n\n\u4f20\u7edf\u7684\u6bcf\u65e5\u6784\u5efa\u4e00\u822c\u53ea\u4f1abuild\u51fa\u4e8c\u8fdb\u5236\u5305\uff0c\u5229\u7528docker\uff0c\u53ef\u4ee5\u6bcf\u5929\u6784\u5efa\u4e00\u4e2a\u5e26\u6709\u6267\u884c\u73af\u5883\u7684container\uff0c\u8fd9\u6837\u5f00\u53d1\u548c\u6d4b\u8bd5\u90fd\u53ef\u4ee5\u4ecedockerfly\u4e2d\u8f7b\u677e\u542f\u7528\u4e00\u53f0\u5373\u65f6\u6784\u5efa\u7684container\uff0c\u63d0\u5347\u5f00\u53d1\u6d4b\u8bd5\u6548\u7387\u3002\n\n\u56de\u5f52\u6d4b\u8bd5\n--------\n\n* \u4e00\u822c\u56de\u5f52\u6d4b\u8bd5\u4e3a\u4e86\u4fdd\u8bc1\u6267\u884c\u73af\u5883\u7684\u7edf\u4e00\uff0c\u90fd\u8981\u5728setUp\u548ctearDown\u4e2d\u5199\u8bb8\u591a\u73af\u5883\u76f8\u5173\u7684\u4ee3\u7801\u3002\n\n* dockerfly\u63d0\u4f9b\u4e86\u7b80\u5355\u7684Restful API\u63a5\u53e3\uff0c\u53ef\u4ee5\u521b\u5efa/\u5220\u9664/\u542f\u52a8/\u505c\u6b62/\u6267\u884c\u547d\u4ee4/\u62f7\u8d1d\u6587\u4ef6\u7b49\uff0c\u8fd9\u6837\u7ec8\u4e8e\u53ef\u4ee5\u8d70\u8fdb`\u521b\u5efa\u4e00\u53f0\u673a\u5668->\u8dd1\u4e00\u4e2a\u6d4b\u8bd5`\u7684\u65f6\u4ee3\u4e86\uff0c\u800c\u4e14\u542f\u52a8/\u5220\u9664container\u7684\u52a8\u4f5c\u5728\u79d2\u949f\u7ea7\u522b\uff0c\u6548\u7387\u5f88\u9ad8\u3002\u73af\u5883\u65e0\u7591\u662f\u6700\u5e72\u51c0\u7684\u3002\n\n\u4e34\u65f6\u9879\u76ee\u5f00\u53d1\n--------------\n\n\u50cf\u591a\u4e2apython\u9879\u76ee\u73af\u5883\u7684\u9694\u79bb\uff0c\u4e00\u76f4\u7528virtualenv\u4e4b\u7c7b\u7684\u5de5\u5177\uff0c\u7528container\u6765\u9694\u79bb\u4f1a\u66f4\u5e72\u51c0\uff0c\u540c\u65f6\u53ef\u4ee5\u5c06\u4e00\u53f0\u673a\u5668\u5212\u5206\u6210\u591a\u4e2a\u9879\u76ee\u7684containers\uff0c\u6bcf\u53f0container\u5206\u914d\u4e00\u4e2aIP\uff0c\u670d\u52a1\u5404\u884c\u5176\u9053\uff0c\u4e92\u4e0d\u5e72\u6270\u3002\n\n\nReference\n========================\n\n* Linux \u4e0a\u7684\u57fa\u7840\u7f51\u7edc\u8bbe\u5907\u8be6\u89e3\n\nhttp://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/index.html\n\n* Linux \u4e0a\u865a\u62df\u7f51\u7edc\u4e0e\u771f\u5b9e\u7f51\u7edc\u7684\u6620\u5c04\n\nhttp://www.ibm.com/developerworks/cn/linux/1312_xiawc_linuxvirtnet/index.html\n\n* \u7f51\u7edc\u865a\u62df\u5316\u6280\u672f: TUN/TAP MACVLAN MACVTAP\n\nhttps://blog.kghost.info/2013/03/27/linux-network-tun/\n\n* Coupling Docker and Open vSwitch\n\nhttp://fbevmware.blogspot.com/2013/12/coupling-docker-and-open-vswitch.html\n\n* four ways to connect a docker\n\nhttp://blog.oddbit.com/2014/08/11/four-ways-to-connect-a-docker/\n\n* Docker containers should not run an SSH server\n\nhttps://news.ycombinator.com/item?id=7950326\n\n* Proposal: Native Docker Multi-Host Networking\n\nhttps://github.com/docker/docker/issues/8951\n\nLicense (Simplified BSD)\n========================\nhttp://choosealicense.com/licenses/bsd-2-clause/\n\nLATEST VERSION\n========================\n1.4.0\n\n\n\nrelease 1.4.0 2016/07/13\n-------------------------------\n* bug fix: for lock and concurrence\n\nrelease 1.3.0 2016/07/01\n-------------------------------\n* now you can add same eths between different machines\n\n* change daemon server to tornado\n\n\nrelease 1.2.0 2015/06/23\n-------------------------------\nyou can add unlimited virtual eths(0.0.0.0/24) to a container\n\nrelease 1.1.0 2015/04/19\n-------------------------------\nperfect dockerflyui\n\nrelease 1.0.0 2014/12/22\n-------------------------------\nadd dockerfly/bin/dockerflyd\nadd dockerflyui\nadd resize container support in dockerfly/bin/dockerflyctl\n\nrelease 1.0.0-dev 2014/12/18\n-------------------------------\nadd dockerfly ui wrapper\n\nrelease 0.5.0 2014/12/09\n-------------------------------\nsupport auto arp broadcast for gateway\n\nrelease 0.4.0 2014/12/08\n-------------------------------\nbug fix:\ndockerflyctl getpid \n\nrelease 0.3.0 2014/12/08\n-------------------------------\nbug fix:\ndockerflyctl command exp\n\nrelease 0.2.0 2014/12/08\n-------------------------------\n\nInitial release.0.1.0 or \"Alpha 1\" (Unreleased) 2014/12/07\n-------------------------------\n\nInitial release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/memoryboxes/dockerfly", "keywords": null, "license": "BSD-derived (http://www.repoze.org/LICENSE.txt)", "maintainer": null, "maintainer_email": null, "name": "dockerfly", "package_url": "https://pypi.org/project/dockerfly/", "platform": "any", "project_url": "https://pypi.org/project/dockerfly/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/memoryboxes/dockerfly" }, "release_url": "https://pypi.org/project/dockerfly/1.4.0/", "requires_dist": null, "requires_python": null, "summary": "a docker tool for create containers easily", "version": "1.4.0" }, "last_serial": 2217966, "releases": { "0.1.0-dev": [ { "comment_text": "", "digests": { "md5": "597ca70b13894bed128a32f78fcf7cdf", "sha256": "bdecd6c65ecdf5d417c8439cf37003c93c317a3e8fe1eb86669744256dbd3cbb" }, "downloads": -1, "filename": "dockerfly-0.1.0_dev-py2.7.egg", "has_sig": false, "md5_digest": "597ca70b13894bed128a32f78fcf7cdf", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 14428, "upload_time": "2014-12-07T09:45:15", "url": "https://files.pythonhosted.org/packages/56/46/76e16ba9c2b3bff28c2261c58f72877fba50c30feafd0c35d5f326cec82c/dockerfly-0.1.0_dev-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "167e4d97a97f56f3e541682a75f89bca", "sha256": "77a009087598618b6d56bd36ebb1782b5c5a8f7771cb426d105b25abe6f3aea1" }, "downloads": -1, "filename": "dockerfly-0.1.0-dev.tar.gz", "has_sig": false, "md5_digest": "167e4d97a97f56f3e541682a75f89bca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6260, "upload_time": "2014-12-07T09:45:07", "url": "https://files.pythonhosted.org/packages/86/32/e0ec7af4960013e79150af2379070766b4b96dbf3e12f1a45820e2c58412/dockerfly-0.1.0-dev.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7ce5b7c7c883b72db737521935db2a5d", "sha256": "6fe7ccbc0262fa9999dd0b3d566e2acd215fe85ddfbe6eea2eba42fe2affd3f5" }, "downloads": -1, "filename": "dockerfly-0.2.0-py2.7.egg", "has_sig": false, "md5_digest": "7ce5b7c7c883b72db737521935db2a5d", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 14424, "upload_time": "2014-12-07T09:50:44", "url": "https://files.pythonhosted.org/packages/b7/c2/8a3e44d707d854b62b9cdf86f7d06f56bc32051f1e83443c5d7783ce08fe/dockerfly-0.2.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "249146047a837dd32f50b3ab4c3db0cf", "sha256": "3acb9c59afe6e160bc78f880ae3db1a30e5a6fd9a9d7d9d5300a19fa70b69478" }, "downloads": -1, "filename": "dockerfly-0.2.0.tar.gz", "has_sig": false, "md5_digest": "249146047a837dd32f50b3ab4c3db0cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6248, "upload_time": "2014-12-07T09:50:40", "url": "https://files.pythonhosted.org/packages/84/8c/f8f55067e28b31153fc39899fa7daba6008c6c2cdf65317d36bd79701a65/dockerfly-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2cef2e2fbb8e69f1cee8114e2b6051b0", "sha256": "3bcbedab86a9d1bc79505dda0c82b88942a6eb3b0516823d87d570dbc5094372" }, "downloads": -1, "filename": "dockerfly-0.3.0-py2.7.egg", "has_sig": false, "md5_digest": "2cef2e2fbb8e69f1cee8114e2b6051b0", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 14481, "upload_time": "2014-12-08T07:18:39", "url": "https://files.pythonhosted.org/packages/a5/c7/903a95a050de6df724f0fc69dce9f3dfc79a349db6f61f08911176c59c62/dockerfly-0.3.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "217328c8b81626626b44f09f0a4037e5", "sha256": "6e95496e859313198d1bd5abe277c9844719fc74e1f9e364aaab669f81f15e97" }, "downloads": -1, "filename": "dockerfly-0.3.0.tar.gz", "has_sig": false, "md5_digest": "217328c8b81626626b44f09f0a4037e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6358, "upload_time": "2014-12-08T07:18:35", "url": "https://files.pythonhosted.org/packages/7a/92/2c61278d901b454c5a98617833aea60dcb9468deebbf5a5dd9b3871132e8/dockerfly-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ca616ecc2b80c475eea9f62edeea2707", "sha256": "78fbfc8f84e7796c1edb6d7a70546fba01d9fa941ee5eb6bc80361638750bb58" }, "downloads": -1, "filename": "dockerfly-0.4.0-py2.7.egg", "has_sig": false, "md5_digest": "ca616ecc2b80c475eea9f62edeea2707", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 14507, "upload_time": "2014-12-08T07:33:57", "url": "https://files.pythonhosted.org/packages/f7/f6/a296592050277de37ed03c38eb5ef8a8678b4275f4d31fa2f8f3b98d533b/dockerfly-0.4.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "721f1d73f8ac42f0a7370bee34242e8b", "sha256": "25e8a73c8d3d1890b8e812f02fc7456a5ba1dc420fa8c8365b61e71c37e8c24e" }, "downloads": -1, "filename": "dockerfly-0.4.0.tar.gz", "has_sig": false, "md5_digest": "721f1d73f8ac42f0a7370bee34242e8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6383, "upload_time": "2014-12-08T07:33:54", "url": "https://files.pythonhosted.org/packages/ee/e3/7c93d0bead3ddc5458dc023ecfb38ce59faf54ce38ab2eba4e9ffea07509/dockerfly-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c50489f0648127f4a09482caa68a0ee6", "sha256": "82d92dba5a7812d290939f473081be02164d61ada91f32cab8aefa793b06d368" }, "downloads": -1, "filename": "dockerfly-0.5.0-py2.7.egg", "has_sig": false, "md5_digest": "c50489f0648127f4a09482caa68a0ee6", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 15008, "upload_time": "2014-12-09T01:53:22", "url": "https://files.pythonhosted.org/packages/b2/31/7dfe27319b3ae29ddf3a0229a8ab1772c74b0953021f622f4f239451346c/dockerfly-0.5.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bfdccadc10614c01136f6bbbd6de199b", "sha256": "a3a50d58e8afe06b7a7aeaf5b325584846d9ebbb99497d8b7547e604bd19c3a5" }, "downloads": -1, "filename": "dockerfly-0.5.0.tar.gz", "has_sig": false, "md5_digest": "bfdccadc10614c01136f6bbbd6de199b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6655, "upload_time": "2014-12-09T01:53:18", "url": "https://files.pythonhosted.org/packages/21/bc/3b70e3abadea49d458f62744540f744057a79b0fc317184a72bb205861a4/dockerfly-0.5.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "86d78cf86839c3c41b20b60302232e01", "sha256": "9aeaf8d4e78de695a89d3852bbf12adfd72fb9ee14eea873bbb93d521c3dadab" }, "downloads": -1, "filename": "dockerfly-1.0.0.tar.gz", "has_sig": false, "md5_digest": "86d78cf86839c3c41b20b60302232e01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10364, "upload_time": "2014-12-22T05:35:21", "url": "https://files.pythonhosted.org/packages/b8/ba/948c91c03534a628c81a63f430b54d1d77994f57a52370b05b401a422f23/dockerfly-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "902f805e38f8508fa9b16eccdcfc8bc2", "sha256": "199788ed4ac01b7713ee7c9387a5771823b9d0d6960d8f0fe5fc97475d099e27" }, "downloads": -1, "filename": "dockerfly-1.1.0-py2.7.egg", "has_sig": false, "md5_digest": "902f805e38f8508fa9b16eccdcfc8bc2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 38533, "upload_time": "2015-04-25T04:11:12", "url": "https://files.pythonhosted.org/packages/54/31/2ccfc3cd1fedb88f1358c00f7397470c762c226a7906714489fb7b8a9f0b/dockerfly-1.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "c10c6a252c2901e8342ec4d302fff045", "sha256": "9e448f9ab3fe560ca54eb52ecb7f21ababee64f8fd3360642f1d2af9bbb5aaa0" }, "downloads": -1, "filename": "dockerfly-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c10c6a252c2901e8342ec4d302fff045", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18868, "upload_time": "2015-04-25T04:11:02", "url": "https://files.pythonhosted.org/packages/59/25/7ee63348fdd289219792d5be934d20618272eb28a3cf208ca5a4ad94a322/dockerfly-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "57acbb1e70705b24e08bbf49a9a59747", "sha256": "dd7878551e41f3300ee9397fb5674a8c8c470a4dbe84b8cf9fa8839699024b45" }, "downloads": -1, "filename": "dockerfly-1.2.0-py2.7.egg", "has_sig": false, "md5_digest": "57acbb1e70705b24e08bbf49a9a59747", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 39127, "upload_time": "2015-06-23T00:45:30", "url": "https://files.pythonhosted.org/packages/48/3c/a54fb7fa772560034be1f9f79f677cc13b3be8bccc257a7414413e5a7054/dockerfly-1.2.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d5aa5fac8494d1ebbdfd18e43ff33ca0", "sha256": "849d60859c13d342475ecda434bcca40d19d57267d01009640c2d3c98a3b8817" }, "downloads": -1, "filename": "dockerfly-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d5aa5fac8494d1ebbdfd18e43ff33ca0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19958, "upload_time": "2015-06-23T00:45:26", "url": "https://files.pythonhosted.org/packages/de/f5/6284fe29703758bfff56b22d7255d4a586dd258475f8d067da13880513c7/dockerfly-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "0bfd5ed36fed2d814a69f753731c2153", "sha256": "1d447cab2f41468da39e171e061d4a7be4447d93bb8068bf0c973351f5552f5f" }, "downloads": -1, "filename": "dockerfly-1.3.0-py2.7.egg", "has_sig": false, "md5_digest": "0bfd5ed36fed2d814a69f753731c2153", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 48599, "upload_time": "2016-07-01T08:11:06", "url": "https://files.pythonhosted.org/packages/fc/85/2f9ab12c6d3827a8fca5003f50e038035d5018230498a7d966c2e40855bb/dockerfly-1.3.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "8ba902273bb5b671d4a92dd26d56ffef", "sha256": "285f94478cca932c145046344b082f5245734dcf2d964ec7b59b82e251c99809" }, "downloads": -1, "filename": "dockerfly-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8ba902273bb5b671d4a92dd26d56ffef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19944, "upload_time": "2016-07-01T08:10:56", "url": "https://files.pythonhosted.org/packages/ec/42/41b52de922728c0b2f6ea35949d7e000485870fc53401b6af68bc3464fbd/dockerfly-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "9b6440754534312e68400eb85a9838f3", "sha256": "d9e4b21acb6002ffb174fe5edea261519f518c83eb25efeeda49e92d51a280f0" }, "downloads": -1, "filename": "dockerfly-1.4.0-py2.7.egg", "has_sig": false, "md5_digest": "9b6440754534312e68400eb85a9838f3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 49543, "upload_time": "2016-07-13T01:04:24", "url": "https://files.pythonhosted.org/packages/ef/62/cae24b1dc2f499dbb584b80eaf528397abd247984e962aacdb7dfa9894e6/dockerfly-1.4.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ab0e43d4b3f48e3879dd04946ecaad7c", "sha256": "d3d1c96f9e617dd6543e3e067f3deef568126b97975c743133562c099a28c775" }, "downloads": -1, "filename": "dockerfly-1.4.0.tar.gz", "has_sig": false, "md5_digest": "ab0e43d4b3f48e3879dd04946ecaad7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20441, "upload_time": "2016-07-13T01:04:17", "url": "https://files.pythonhosted.org/packages/5d/79/5230fa43ca92a8957caeb068cd777884ed6872a27621cc4346ac9de40ebf/dockerfly-1.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9b6440754534312e68400eb85a9838f3", "sha256": "d9e4b21acb6002ffb174fe5edea261519f518c83eb25efeeda49e92d51a280f0" }, "downloads": -1, "filename": "dockerfly-1.4.0-py2.7.egg", "has_sig": false, "md5_digest": "9b6440754534312e68400eb85a9838f3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 49543, "upload_time": "2016-07-13T01:04:24", "url": "https://files.pythonhosted.org/packages/ef/62/cae24b1dc2f499dbb584b80eaf528397abd247984e962aacdb7dfa9894e6/dockerfly-1.4.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ab0e43d4b3f48e3879dd04946ecaad7c", "sha256": "d3d1c96f9e617dd6543e3e067f3deef568126b97975c743133562c099a28c775" }, "downloads": -1, "filename": "dockerfly-1.4.0.tar.gz", "has_sig": false, "md5_digest": "ab0e43d4b3f48e3879dd04946ecaad7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20441, "upload_time": "2016-07-13T01:04:17", "url": "https://files.pythonhosted.org/packages/5d/79/5230fa43ca92a8957caeb068cd777884ed6872a27621cc4346ac9de40ebf/dockerfly-1.4.0.tar.gz" } ] }