Let's take a look at some more cool features of the Docker CLI.
pull allows you to pre-fetch container to run. P
docker pull jturpin/hollywood docker run -it jturpin/hollywood hollywood # notice it's already loaded and cached here; it doesn't redownload it
That will pull the hollywood container from the user jturpin's user account. The second line will execute this fun container which is just meant to look a hacker's screen in a movie (it doesn't really do anything than look cool.)
push allows you to push containers to whatever registry you're connected to (probably normally Docker Hub or something like Azure Container Registry).
docker inspect node
This will dump out a lot of info about the container. Helpful when figuring out what's going on with a container
As it looks, these pauses or unpause all the processes in a container. Feel free to try
docker run -dit jturpin/hollywood hollywood docker ps # see container running docker pause <ID or name> docker ps # see container paused docker unpause <ID or name> docker ps # see container running again docker kill <ID or name> # see container is gone
This allows you to execute a command against a running container. This is different from
docker run because
docker run will start a new container whereas
docker exec runs the command in an already-running container.
docker run -dit jturpin/hollywood hollywood docker ps # grab the name or ID docker exec <ID or name> ps aux # see it output all the running processes of the container
If you haven't seen
ps aux before, it's a really useful way to see what's running on your computer. Try running
ps aux on your macOS or Linux computer to see everything running.
Allows you to dump out your container to a tar ball (which we did above.) You can also import a tar ball as well.
We'll get into layers in a bit but this allow you to see how this Docker image's layer composition has changed over time and how recently.
docker history node
Dumps a bunch of info about the host system. Useful if you're on a VM somewhere and not sure what the environment is.
Allows you to see processes running on a container (similar to what we did above)
docker run mongo docker top <ID outputted by previous command> # you should see MongoDB running
If you run
docker ps --all it'll show all containers you've stopped running in addition to the runs you're running. If you want to remove something from this list, you can do
docker rm <id or name>.
If you want to remove an image from your computer (to save space or whatever) you can run
docker rmi mongo and it'll delete the image from your computer. This isn't a big deal since you can always reload it again
Very useful to see the output of one of your running containers.
docker run -d mongo docker logs <id from previous command> # see all the logs
Pretty self explanatory. Will restart a running container
If you want to see if a container exists on Docker Hub (or whatever registry you're connected to), this will allow you to take a look.
docker search python # see all the various flavors of Python containers you can run docker search node # see all the various flavors of Node.js containers you can run