{"id":15556158,"url":"https://github.com/so0k/cacib-isap","last_synced_at":"2025-07-20T04:36:17.655Z","repository":{"id":146553645,"uuid":"83224789","full_name":"so0k/cacib-isap","owner":"so0k","description":"Tech Talk for Credit Agricole","archived":false,"fork":false,"pushed_at":"2017-02-27T08:56:21.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T03:14:57.620Z","etag":null,"topics":["docker","swarm","tech-talks"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/so0k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-02-26T16:50:33.000Z","updated_at":"2017-04-10T10:38:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa2fcd3a-3ec8-432f-b861-17e181e50b13","html_url":"https://github.com/so0k/cacib-isap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/so0k/cacib-isap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/so0k%2Fcacib-isap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/so0k%2Fcacib-isap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/so0k%2Fcacib-isap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/so0k%2Fcacib-isap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/so0k","download_url":"https://codeload.github.com/so0k/cacib-isap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/so0k%2Fcacib-isap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266067458,"owners_count":23871351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","swarm","tech-talks"],"created_at":"2024-10-02T15:12:18.463Z","updated_at":"2025-07-20T04:36:17.647Z","avatar_url":"https://github.com/so0k.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Docker Tech Talk Demo Script\n\nThis Repository contains the code I used for the live demonstration during the\ntech talk at Credit Agricole - Feb 27, 2016.\n\nThe code samples come from exising Docker labs material (see references below).\n\nThe [slides are available](https://docs.google.com/presentation/d/1eoj4GNbK256tBYwhZ6U4pW8nfl31FmYc6KJuPZRH4ns/edit?usp=sharing) as well\n\n## Docker CLI\n\nUsing Docker For Mac / Docker For Windows\n\n```\ndocker pull alpine\n```\n\n```\ndocker image ls\n```\n\nDo this multipe times\n```\ndocker run -it alpine /bin/sh\n```\n\n```\nhostname\nps -a\nls -l\nuptime\n```\n\n\u003ckbd\u003eCTRL\u003c/kbd\u003e+\u003ckbd\u003eD\u003c/kbd\u003e\n\n```\ndocker run -it --rm busybox \n```\n\n\u003ckbd\u003eCTRL\u003c/kbd\u003e+\u003ckbd\u003eD\u003c/kbd\u003e\n\n```\ndocker run -d -p 80:80 --name webserver -v $PWD/static_site:/usr/share/nginx/html:ro nginx:alpine\n```\n\n```\ndocker stop webserver\ndocker rm webserver\n```\n\nClean up containers\n```\ndocker container prune\n```\n\n```\ndocker run -it --name test ubuntu:latest /bin/bash\n```\n\n```\napt-get install rolldice\n```\n\n\u003ckbd\u003eCTRL\u003c/kbd\u003e+\u003ckbd\u003eD\u003c/kbd\u003e\n\n```\ndocker container ls -a\n```\n\n```\ndocker commit -t so0k:rolldice test\n```\n\nInstead, use a Dockerfile... `static-site\\Dockerfile`\n\n```\ndocker build -t so0k/static-site:latest .\n```\n\n```\ndocker run --name static-site -e AUTHOR=\"Docker Singapore\" -d -p 80:80 so0k/static-site\n```\n\n\u003ckbd\u003eCTRL\u003c/kbd\u003e+\u003ckbd\u003eD\u003c/kbd\u003e\n\n## Docker Compose\n\nRun a simple Flask app with a Redis cache.\n\n```\ncd counter/\ndocker-compose up\n```\n\nChange the code\n```\nvim app.py\n```\nNotice application code reloaded...\n\n\nAnother simple Python app (Master-Slave)\n\n```\ncd ../locust/\ndocker-compose up -d\n```\n\nStart the swarm\n```\ncurl -XPOST http://127.0.0.1:8089/swarm -d\"locust_count=20\u0026hatch_rate=10\"\n```\n\nWatch the status\n```\nwatch -n 1 \"curl -s http://127.0.0.1:8089/stats/requests | jq -r '[.user_count, .total_rps, .state] | @tsv'\n```\n\nStop the swarm\n```\ncurl http://127.0.0.1:8089/stop\n```\n\nClean up\n```\ncd ../counter\ndocker-compose down --volume\n```\n\n```\ncd ../locust\ndocker-compose down --volume\n```\n\n## Using Docker-Machine:\n\n- Manage remote hosts\n- Provision multiple hosts locally\n- .. \n\n```bash\ndocker-machine create --driver xhyve manager\n```\nNote: If network is a concern, do this in advance as well as\n\n```bash\n(cd vote;docker-compose pull)\n```\n\n```bash\ndocker-machine ls\n```\n\n```bash\ndocker-machine ssh manager\nuname -a\n```\n\n```bash\ndocker-machine env manager\neval $(docker-machine env manager)\n```\n\n```\ndocker run -d --name static-site -e AUTHOR=\"Docker Singapore!\" -d -p 80:80 so0k/static-site\n```\n\n```\ndocker-machine ip manager\n```\n\nopen website on manager IP..\n\nNotice also:\n\n```\ndocker system info\n```\n\n## Docker Swarm\n\nCreate a Swarm of Nodes\n\nCreate another node for the swarm\n\n```\ndocker-machine create --driver xhyve worker\n```\n\n```\ndocker swarm init\n```\n\n```\neval $(docker-machine env worker)\n```\n\n```\ndocker swarm join \\\n     --token SWMTKN-?? \\\n     192.168.64.24:2377\n```\n\n\n## Deploy Stack across swarm\n\nTalk to manager\n```\neval $(docker-machine env manager)\n```\n\n```bash\ndocker stack -h\n```\n\n```bash\ncd vote/\ndocker-compose config | less\ndocker stack deploy -c docker-compose.yaml vote\n```\n\n```bash\ndocker service ls\n```\n\nPorts:\n\n- 8080 for node viz\n- 5000 for voting app\n- 5001 for result app\n\n## Clean up\n\n```\ndocker stack rm vote\n```\n\n```bash\ndocker-machine rm manager worker\n```\n\nUnset docker environment:\n\n```\neval $(docker-machine env -u)\n```\n\n## References\n\n- [Static site](https://github.com/docker/labs/tree/master/beginner/static-site)\n- [Compose](https://docs.docker.com/compose/gettingstarted/)\n- [Locust](https://github.com/honestbee/distributed-load-testing)\n- [xhyve driver](https://github.com/zchee/docker-machine-driver-xhyve)\n- [aws driver](https://docs.docker.com/machine/drivers/aws/)\n- [Voting App](https://docs.docker.com/engine/getstarted-voting-app/)\n- [What's New in 1.13](https://gist.github.com/so0k/872b798db710e0cb6b4bfc12550a63e0)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fso0k%2Fcacib-isap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fso0k%2Fcacib-isap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fso0k%2Fcacib-isap/lists"}