A piggy bank of commands, fixes, succinct reviews, some mini articles and technical opinions from a (mostly) Perl developer.

Jump to

Quick reference

Showing posts with label containers. Show all posts
Showing posts with label containers. Show all posts

Docker basics

# Download an image and spin up a container, run it, connect to it

docker pull [name pf image] # download an image

docker run -d -p 80:80 --name pintail-whoami pintailai/pintail-whoami:0.0.1 # download + run

docker run --rm -v /path/on/machine:/app/out image-name:stable params to app

# List running containers

docker ps # show running containers

docker ps | cut -c-$(tput cols) # show running containers without wrapping to the next line

docker ps -q # show just the IDs of the running containers

docker ps -q | head -1 # show ID of most recently started container (how to sort)

# Run a shell on a container

docker run -i -t [Container ID] /bin/bash

# Connect to a shell on an already-runnning docker container.
# (Shell: Use /bin/bash for ubuntu or /bin/ash for alpine)

docker exec -it [Container ID] [shell]

docker exec -it `docker ps -q | head -1` /bin/bash # run shell on the most recently started container

# Copy a file off

docker cp <container>:<src-path> <local-dest-path>

# Delete all stopped containers and images

docker system prune -a

# List all images

docker image ls

Why use virtual containers?

Traditional software development:

  • Business need
  • Approval process   }
  • Hardware purchase  } Use IaaS instead - Infrastructure as a service
  • Software development
  • Deployment         } Use PaaS instead - Platform as a service
  • Feedback

The future:

  • Linux containers AKA Docker
    • Security/compliance are happy
    • Operations are happy
    • Business is happy
    • Developers are happy
  • Kubernetes
    • June 2014: Google open source container management project
    • Red Hat is collaborating

Source: Jeremy Brown of tenfourty.com / @tenfourty