Stylistic cleanup in usingdocker.md

- wrap lines
- update version numbers and dates
- remove -ing from headings
- remove redundant text
This commit is contained in:
Roland Illig 2016-11-07 00:15:35 +01:00
parent 2c9eff5bc9
commit d35d1f7e2f
1 changed files with 58 additions and 57 deletions

View File

@ -3,12 +3,21 @@ redirect_from:
- /engine/userguide/containers/usingdocker/ - /engine/userguide/containers/usingdocker/
description: Learn how to manage and operate Docker containers. description: Learn how to manage and operate Docker containers.
keywords: keywords:
- docker, the docker guide, documentation, docker.io, monitoring containers, docker top, docker inspect, docker port, ports, docker logs, log, Logs - docker, the docker guide, documentation, docker.io, monitoring containers,
docker top, docker inspect, docker port, ports, docker logs, log, logs
menu:
main:
parent: engine_learn_menu
weight: -5
title: Run a simple application title: Run a simple application
--- ---
In the ["*Hello world in a container*"](dockerizing.md) you launched your # Run a simple application
first containers using the `docker run` command. You ran an *interactive container* that ran in the foreground. You also ran a *detached container* that ran in the background. In the process you learned about several Docker commands:
In the ["*Hello world in a container*"](dockerizing.md) you launched your first
containers using the `docker run` command. You ran an *interactive container*
that ran in the foreground. You also ran a *detached container* that ran in the
background. In the process you learned about several Docker commands:
* `docker ps` - Lists containers. * `docker ps` - Lists containers.
* `docker logs` - Shows the standard output of a container. * `docker logs` - Shows the standard output of a container.
@ -16,9 +25,7 @@ first containers using the `docker run` command. You ran an *interactive contain
## Learn about the Docker client ## Learn about the Docker client
If you didn't realize it yet, you've been using the Docker client each time you The `docker` program is called the Docker client. Each action you can take with
typed `docker` in your Bash terminal. The client is a simple command line client
also known as a command-line interface (CLI). Each action you can take with
the client is a command and each command can take a series of flags and arguments. the client is a command and each command can take a series of flags and arguments.
# Usage: [sudo] docker [subcommand] [flags] [arguments] .. # Usage: [sudo] docker [subcommand] [flags] [arguments] ..
@ -35,19 +42,19 @@ daemon you are using, but also the version of Go (the programming
language powering Docker). language powering Docker).
Client: Client:
Version: 1.8.1 Version: 1.12.2
API version: 1.20 API version: 1.24
Go version: go1.4.2 Go version: go1.6.3
Git commit: d12ea79 Git commit: bb80604
Built: Thu Aug 13 02:35:49 UTC 2015 Built: Tue Oct 11 17:00:50 2016
OS/Arch: linux/amd64 OS/Arch: windows/amd64
Server: Server:
Version: 1.8.1 Version: 1.12.3
API version: 1.20 API version: 1.24
Go version: go1.4.2 Go version: go1.6.3
Git commit: d12ea79 Git commit: 6b644ec
Built: Thu Aug 13 02:35:49 UTC 2015 Built: Wed Oct 26 23:26:11 2016
OS/Arch: linux/amd64 OS/Arch: linux/amd64
## Get Docker command help ## Get Docker command help
@ -76,9 +83,9 @@ To see usage for a specific command, specify the command with the `--help` flag:
> For further details and examples of each command, see the > For further details and examples of each command, see the
> [command reference](../reference/commandline/cli.md) in this guide. > [command reference](../reference/commandline/cli.md) in this guide.
## Running a web application in Docker ## Run a web application in Docker
So now you've learned a bit more about the `docker` client you can move onto Now that you've learned a bit more about the Docker client, you can move onto
the important stuff: running more containers. So far none of the the important stuff: running more containers. So far none of the
containers you've run did anything particularly useful, so you can containers you've run did anything particularly useful, so you can
change that by running an example web application in Docker. change that by running an example web application in Docker.
@ -88,24 +95,22 @@ Start with a `docker run` command.
$ docker run -d -P training/webapp python app.py $ docker run -d -P training/webapp python app.py
Review what the command did. You've specified two flags: `-d` and This command consists of the following parts:
`-P`. You've already seen the `-d` flag which tells Docker to run the
container in the background. The `-P` flag is new and tells Docker to
map any required network ports inside the container to your host. This
lets you view the web application.
You've specified an image: `training/webapp`. This image is a * The `-d` flag runs the container in the background (as a so-called daemon).
pre-built image that contains a simple Python Flask web application. * The `-P` flag maps any required network ports inside the container to your
host. This lets you view the web application.
Lastly, you've specified a command for the container to run: * The `training/webapp` image is a pre-built image that contains a simple Python
`python app.py`. This launches the web application. Flask web application.
* The remaining arguments make up the command that is run inside
the container. The `python app.py` command launches the web application.
> **Note:** > **Note:**
> You can see more detail on the `docker run` command in the [command > You can see more detail on the `docker run` command
> reference](../reference/commandline/run.md) and the [Docker Run > in the [command reference](../reference/commandline/run.md)
> Reference](../reference/run.md). > and the [docker run reference](../reference/run.md).
## Viewing the web application container ## View the web application container
Now you can see your running container using the `docker ps` command. Now you can see your running container using the `docker ps` command.
@ -114,9 +119,7 @@ Now you can see your running container using the `docker ps` command.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse
You can see a new flag, `-l`, for the `docker ps` command. The `-l` flag shows only the details of the *last* container started.
This tells the `docker ps` command to return the details of the
*last* container started.
> **Note:** > **Note:**
> By default, the `docker ps` command only shows information about running > By default, the `docker ps` command only shows information about running
@ -157,19 +160,18 @@ Suppose you want to test two Python applications: both bound to port 5000 inside
their own containers. Without Docker's port mapping you could only access one at their own containers. Without Docker's port mapping you could only access one at
a time on the Docker host. a time on the Docker host.
So you can now browse to port 49155 in a web browser to So you can now browse to port 49155 in a web browser to see the application.
see the application.
![Viewing the web application](webapp1.png). ![Screenshot of the running web application](webapp1.png).
Your Python application is live! Your Python web application is live!
> **Note:** > **Note:**
> If you have been using a virtual machine on macOS, Windows or Linux, > If you have been using a virtual machine on macOS, Windows or Linux,
> you'll need to get the IP of the virtual host instead of using localhost. > you'll need to get the IP of the virtual host instead of using localhost.
> You can do this by running the `docker-machine ip your_vm_name` from your command line or terminal application, for example: > You can do this by running `docker-machine ip` from the command line:
> >
> $ docker-machine ip my-docker-vm > $ docker-machine ip
> 192.168.99.100 > 192.168.99.100
> >
> In this case you'd browse to `http://192.168.99.100:49155` for the above example. > In this case you'd browse to `http://192.168.99.100:49155` for the above example.
@ -188,7 +190,7 @@ the port for which you need the corresponding public-facing port.
In this case you've looked up what port is mapped externally to port 5000 inside In this case you've looked up what port is mapped externally to port 5000 inside
the container. the container.
## Viewing the web application's logs ## View the web application's logs
You can also find out a bit more about what's happening with your You can also find out a bit more about what's happening with your
application and use another of the commands you've learned, `docker logs`. application and use another of the commands you've learned, `docker logs`.
@ -196,15 +198,14 @@ application and use another of the commands you've learned, `docker logs`.
$ docker logs -f nostalgic_morse $ docker logs -f nostalgic_morse
* Running on http://0.0.0.0:5000/ * Running on http://0.0.0.0:5000/
10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 - 10.0.2.2 - - [06/Nov/2016 20:16:31] "GET / HTTP/1.1" 200 -
10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 - 10.0.2.2 - - [06/Nov/2016 20:16:31] "GET /favicon.ico HTTP/1.1" 404 -
This time though you've added a new flag, `-f`. This causes the `docker The `-f` flag causes the `docker logs` command to act like the `tail -f` command
logs` command to act like the `tail -f` command and watch the and watch the container's standard output. You can see here the logs from Flask
container's standard out. You can see here the logs from Flask showing showing the application running on port 5000 and the access log entries for it.
the application running on port 5000 and the access log entries for it.
## Looking at the web application container's processes ## Look at the web application container's processes
In addition to the container's logs you can also examine the processes In addition to the container's logs you can also examine the processes
running inside it using the `docker top` command. running inside it using the `docker top` command.
@ -217,7 +218,7 @@ running inside it using the `docker top` command.
Here you can see that the `python app.py` command is the only process Here you can see that the `python app.py` command is the only process
running inside the container. running inside the container.
## Inspecting the web application container ## Inspect the web application container
Lastly, you can take a low-level dive into the Docker container using the Lastly, you can take a low-level dive into the Docker container using the
`docker inspect` command. It returns a JSON document containing useful `docker inspect` command. It returns a JSON document containing useful
@ -249,10 +250,10 @@ specific element, for example to return the container's IP address, you would:
172.17.0.5 172.17.0.5
## Stopping the web application container ## Stop the web application container
Okay you've seen web application working. Now you can stop it using the The web application is still running inside the container. You can stop it using
`docker stop` command and the name of the container: `nostalgic_morse`. the `docker stop` command and the name of the container: `nostalgic_morse`.
$ docker stop nostalgic_morse $ docker stop nostalgic_morse
@ -263,7 +264,7 @@ been stopped.
$ docker ps -l $ docker ps -l
## Restarting the web application container ## Restart the web application container
Oops! Just after you stopped the container you get a call to say another Oops! Just after you stopped the container you get a call to say another
developer needs the container back. From here you have two choices: you developer needs the container back. From here you have two choices: you
@ -282,7 +283,7 @@ responds.
> Also available is the `docker restart` command that runs a stop and > Also available is the `docker restart` command that runs a stop and
> then start on the container. > then start on the container.
## Removing the web application container ## Remove the web application container
Your colleague has let you know that they've now finished with the container Your colleague has let you know that they've now finished with the container
and won't need it again. Now, you can remove it using the `docker rm` command. and won't need it again. Now, you can remove it using the `docker rm` command.