123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- :title: Base commands
- :description: Common usage and commands
- :keywords: Examples, Usage
- The basics
- =============
- Starting Docker
- ---------------
- If you have used one of the quick install paths', Docker may have been installed with upstart, Ubuntu's
- system for starting processes at boot time. You should be able to run ``docker help`` and get output.
- If you get ``docker: command not found`` or something like ``/var/lib/docker/repositories: permission denied``
- you will need to specify the path to it and manually start it.
- .. code-block:: bash
- # Run docker in daemon mode
- sudo <path to>/docker -d &
- Running an interactive shell
- ----------------------------
- .. code-block:: bash
- # Download a base image
- docker pull base
- # Run an interactive shell in the base image,
- # allocate a tty, attach stdin and stdout
- docker run -i -t base /bin/bash
- Starting a long-running worker process
- --------------------------------------
- .. code-block:: bash
- # Start a very useful long-running process
- JOB=$(docker run -d base /bin/sh -c "while true; do echo Hello world; sleep 1; done")
- # Collect the output of the job so far
- docker logs $JOB
- # Kill the job
- docker kill $JOB
- Listing all running containers
- ------------------------------
- .. code-block:: bash
- docker ps
- Expose a service on a TCP port
- ------------------------------
- .. code-block:: bash
- # Expose port 4444 of this container, and tell netcat to listen on it
- JOB=$(docker run -d -p 4444 base /bin/nc -l -p 4444)
- # Which public port is NATed to my container?
- PORT=$(docker port $JOB 4444)
- # Connect to the public port via the host's public address
- # Please note that because of how routing works connecting to localhost or 127.0.0.1 $PORT will not work.
- IP=$(ifconfig eth0 | perl -n -e 'if (m/inet addr:([\d\.]+)/g) { print $1 }')
- echo hello world | nc $IP $PORT
- # Verify that the network connection worked
- echo "Daemon received: $(docker logs $JOB)"
- Committing (saving) an image
- -----------------------------
- Save your containers state to a container image, so the state can be re-used.
- When you commit your container only the differences between the image the container was created from
- and the current state of the container will be stored (as a diff). See which images you already have
- using ``docker images``
- .. code-block:: bash
- # Commit your container to a new named image
- docker commit <container_id> <some_name>
- # List your containers
- docker images
- You now have a image state from which you can create new instances.
- Read more about :ref:`working_with_the_repository` or continue to the complete :ref:`cli`
|