From 4cd93d84f849f2baa41ac67bcb58f3298b3b1d31 Mon Sep 17 00:00:00 2001 From: Julien Le Coupanec Date: Sat, 11 Nov 2017 23:28:02 +0000 Subject: [PATCH] Add Docker cheatsheet --- README.md | 4 +-- tools/docker.sh | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 tools/docker.sh diff --git a/README.md b/README.md index 9a04174..d2435da 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## Table of Contents - [Languages](#languages) - +- [Frameworks](#frameworks) - [Tools](#tools) @@ -25,8 +25,8 @@ ## Tools +- [Docker](tools/docker.sh) - [Nanobox Boxfile](tools/nanobox_boxfile.yml) - - [Nanobox CLI](tools/nanobox_cli.sh) diff --git a/tools/docker.sh b/tools/docker.sh new file mode 100644 index 0000000..10bece1 --- /dev/null +++ b/tools/docker.sh @@ -0,0 +1,66 @@ +############################################################################## +# DOCKER +############################################################################## + + +docker build -t friendlyname . # Create image using this directory's Dockerfile +docker run -p 4000:80 friendlyname # Run "friendlyname" mapping port 4000 to 80 +docker run -d -p 4000:80 friendlyname # Same thing, but in detached mode +docker exec -it [container-id] bash # Enter a running container +docker ps # See a list of all running containers +docker stop # Gracefully stop the specified container +docker ps -a # See a list of all containers, even the ones not running +docker kill # Force shutdown of the specified container +docker rm # Remove the specified container from this machine +docker rm $(docker ps -a -q) # Remove all containers from this machine +docker images -a # Show all images on this machine +docker rmi # Remove the specified image from this machine +docker rmi $(docker images -q) # Remove all images from this machine +docker login # Log in this CLI session using your Docker credentials +docker tag username/repository:tag # Tag for upload to registry +docker push username/repository:tag # Upload tagged image to registry +docker run username/repository:tag # Run image from a registry + + +############################################################################## +# DOCKER COMPOSE +############################################################################## + + +docker-compose up +docker-compose up -d +docker-compose down +docker-compose logs + + +############################################################################## +# DOCKER STACK +############################################################################## + + +docker stack ls # List all running applications on this Docker host +docker stack deploy -c # Run the specified Compose file +docker stack services # List the services associated with an app +docker stack ps # List the running containers associated with an app +docker stack rm # Tear down an application + + +############################################################################## +# DOCKER MACHINE +############################################################################## + + +docker-machine create --driver virtualbox myvm1 # Create a VM (Mac, Win7, Linux) +docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 # Win10 +docker-machine env myvm1 # View basic information about your node +docker-machine ssh myvm1 "docker node ls" # List the nodes in your swarm +docker-machine ssh myvm1 "docker node inspect " # Inspect a node +docker-machine ssh myvm1 "docker swarm join-token -q worker" # View join token +docker-machine ssh myvm1 # Open an SSH session with the VM; type "exit" to end +docker-machine ssh myvm2 "docker swarm leave" # Make the worker leave the swarm +docker-machine ssh myvm1 "docker swarm leave -f" # Make master leave, kill swarm +docker-machine start myvm1 # Start a VM that is currently not running +docker-machine stop $(docker-machine ls -q) # Stop all running VMs +docker-machine rm $(docker-machine ls -q) # Delete all VMs and their disk images +docker-machine scp docker-compose.yml myvm1:~ # Copy file to node's home dir +docker-machine ssh myvm1 "docker stack deploy -c " # Deploy an app