Docker: Difference between revisions

From Wiki
Jump to navigation Jump to search
Line 44: Line 44:


== Images ==
== Images ==
Each image belongs to a repository.  Repositories are either maintained by Docker, Inc. or by users.  Official Docker repositories have a single name like <code>ubuntu</code> or <code>mysql</code>, which user-contributed repositories include a username, e.g. <code>jamtur01/puppet</code>
Each image belongs to a repository.  Repositories are either maintained by Docker, Inc. or by users.  Official Docker repositories have a single name like <code>ubuntu</code> or <code>mysql</code>, while user-contributed repositories include a username, e.g. <code>jamtur01/puppet</code>


The <code>ubuntu</code> repository contains images for each version. By default you get the image tagged <code>latest</code>. You could also specify <code>ubuntu:12.04</code> or <code>ubuntu:precise</code> for version 12.04.
The <code>ubuntu</code> repository contains images for each version. By default you get the image tagged <code>latest</code>. You could also specify <code>ubuntu:12.04</code> or <code>ubuntu:precise</code> for version 12.04.

Revision as of 19:12, 16 December 2014

Managing Containers

docker run -i -t ubuntu /bin/bash  # create a container
docker run --name bob_the_container -i -t ubuntu /bin/bash  # create a container with specified name

docker ps -a  # show all containers

docker start bob_the_container  # start a stopped container
docker attach bob_the_container  # attach to a container 
                                 # NOTE: hit Enter to get a prompt

# create daemonized container
docker run --name daemon_dave -d ubuntu /bin/sh -c \
    "while true; do echo hello world; sleep 1; done"

# view terminal output inside the container
docker logs daemon_dave     
docker logs -f daemon_dave  # like tail -f
docker logs -t daemon_dave  # print timestamps

docker top daemon_dave  # see what's happening inside the container

# run a process inside the container
docker exec -d daemon_dave touch /etc/config_file  # background
docker exec -t -i daemon_dave /bin/bash  # interactive

docker stop daemon_dave  # stop a daemonized container

# automatic container restarts
docker run --restart=always --name daemon_dave -d ubuntu \
    /bin/sh -c "while true; do echo hello world; sleep 1; done"
# might be better to use this flag
    --restart=on-failure:5   # max of 5 restarts

docker inspect daemon_dave  # get container details

# get IP address
docker inspect --format '{{ .NetworkSettings.IPAddress }}' daemon_dave

docker rm 80430f8d0921  # delete a stopped container

Images

Each image belongs to a repository. Repositories are either maintained by Docker, Inc. or by users. Official Docker repositories have a single name like ubuntu or mysql, while user-contributed repositories include a username, e.g. jamtur01/puppet

The ubuntu repository contains images for each version. By default you get the image tagged latest. You could also specify ubuntu:12.04 or ubuntu:precise for version 12.04.

docker images         # list all local docker images
docker images ubuntu  # list only ubuntu-related images