From 8bd33b430b950ca5355f950d4b79a04ba0363c3c Mon Sep 17 00:00:00 2001 From: Victoria Bialas Date: Tue, 7 Jun 2016 17:42:00 -0700 Subject: [PATCH] re-doing Docker Engine overview topics for v.1.12 fixed broken links created from Engine Overview update by adding missing topic to daemon reference page and updating the hrefs in the api pages Signed-off-by: Victoria Bialas --- docs/article-img/engine-components-flow.png | Bin 0 -> 35282 bytes docs/quickstart.md | 205 ------------------ docs/reference/api/docker_remote_api_v1.18.md | 2 +- docs/reference/api/docker_remote_api_v1.19.md | 2 +- docs/reference/api/docker_remote_api_v1.20.md | 10 +- docs/reference/api/docker_remote_api_v1.21.md | 2 +- docs/reference/api/docker_remote_api_v1.22.md | 2 +- docs/reference/api/docker_remote_api_v1.23.md | 2 +- docs/reference/api/docker_remote_api_v1.24.md | 2 +- docs/reference/commandline/dockerd.md | 64 +++++- docs/understanding-docker.md | 43 ++-- 11 files changed, 102 insertions(+), 232 deletions(-) create mode 100644 docs/article-img/engine-components-flow.png delete mode 100644 docs/quickstart.md diff --git a/docs/article-img/engine-components-flow.png b/docs/article-img/engine-components-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..dc3be12b81bb1dcce444b823ee733c7de394ae29 GIT binary patch literal 35282 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 P0}yz+`njxgN@xNAHI|lV literal 0 HcmV?d00001 diff --git a/docs/quickstart.md b/docs/quickstart.md deleted file mode 100644 index 9a99c50895..0000000000 --- a/docs/quickstart.md +++ /dev/null @@ -1,205 +0,0 @@ - - -# Docker Engine Quickstart - -This quickstart assumes you have a working installation of Docker Engine. To verify Engine is installed and configured, use the following command: - - # Check that you have a working install - $ docker info - -If you have a successful install, the system information appears. If you get `docker: command not found` or something like -`/var/lib/docker/repositories: permission denied` you may have an -incomplete Docker installation or insufficient privileges to access -Engine on your machine. With the default installation of Engine `docker` -commands need to be run by a user that is in the `docker` group or by the -`root` user. - -Depending on your Engine system configuration, you may be required -to preface each `docker` command with `sudo`. If you want to run without using -`sudo` with the `docker` commands, then create a Unix group called `docker` and -add the user to the 'docker' group. - -For more information about installing Docker Engine or `sudo` configuration, refer to -the [installation](installation/index.md) instructions for your operating system. - - -## Download a pre-built image - -To pull an `ubuntu` image, run: - - # Download an ubuntu image - $ docker pull ubuntu - -This downloads the `ubuntu` image by name from [Docker Hub](https://hub.docker.com) to a local -image cache. To search for an image, run `docker search`. For more information, go to: -[Searching images](userguide/containers/dockerrepos.md#searching-for-images) - - -> **Note**: -> When the image is successfully downloaded, you see a 12 character -> hash `539c0211cd76: Download complete` which is the -> short form of the Image ID. These short Image IDs are the first 12 -> characters of the full Image ID. To view this information, run -> `docker inspect` or `docker images --no-trunc=true`. - -To display a list of downloaded images, run `docker images`. - -## Running an interactive shell - -To run an interactive shell in the Ubuntu image: - - $ docker run -i -t ubuntu /bin/bash - -The `-i` flag starts an interactive container. -The `-t` flag creates a pseudo-TTY that attaches `stdin` and `stdout`. -The image is `ubuntu`. -The command `/bin/bash` starts a shell you can log in. - -To detach the `tty` without exiting the shell, use the escape sequence -`Ctrl-p` + `Ctrl-q`. The container continues to exist in a stopped state -once exited. To list all running containers, run `docker ps`. To view stopped and running containers, -run `docker ps -a`. - -## Bind Docker to another host/port or a Unix socket - -> **Warning**: -> Changing the default `docker` daemon binding to a -> TCP port or Unix *docker* user group will increase your security risks -> by allowing non-root users to gain *root* access on the host. Make sure -> you control access to `docker`. If you are binding -> to a TCP port, anyone with access to that port has full Docker access; -> so it is not advisable on an open network. - -With `-H` it is possible to make the Docker daemon to listen on a -specific IP and port. By default, it will listen on -`unix:///var/run/docker.sock` to allow only local connections by the -*root* user. You *could* set it to `0.0.0.0:2375` or a specific host IP -to give access to everybody, but that is **not recommended** because -then it is trivial for someone to gain root access to the host where the -daemon is running. - -Similarly, the Docker client can use `-H` to connect to a custom port. -The Docker client will default to connecting to `unix:///var/run/docker.sock` -on Linux, and `tcp://127.0.0.1:2376` on Windows. - -`-H` accepts host and port assignment in the following format: - - tcp://[host]:[port][path] or unix://path - -For example: - -- `tcp://` -> TCP connection to `127.0.0.1` on either port `2376` when TLS encryption - is on, or port `2375` when communication is in plain text. -- `tcp://host:2375` -> TCP connection on - host:2375 -- `tcp://host:2375/path` -> TCP connection on - host:2375 and prepend path to all requests -- `unix://path/to/socket` -> Unix socket located - at `path/to/socket` - -`-H`, when empty, will default to the same value as -when no `-H` was passed in. - -`-H` also accepts short form for TCP bindings: - - `host:` or `host:port` or `:port` - -Run Docker in daemon mode: - - $ sudo /dockerd -H 0.0.0.0:5555 & - -Download an `ubuntu` image: - - $ docker -H :5555 pull ubuntu - -You can use multiple `-H`, for example, if you want to listen on both -TCP and a Unix socket - - # Run docker in daemon mode - $ sudo /dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock & - # Download an ubuntu image, use default Unix socket - $ docker pull ubuntu - # OR use the TCP port - $ docker -H tcp://127.0.0.1:2375 pull ubuntu - -## Starting a long-running worker process - - # Start a very useful long-running process - $ JOB=$(docker run -d ubuntu /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 containers - - $ docker ps # Lists only running containers - $ docker ps -a # Lists all containers - -## Controlling containers - - # Start a new container - $ JOB=$(docker run -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done") - - # Stop the container - $ docker stop $JOB - - # Start the container - $ docker start $JOB - - # Restart the container - $ docker restart $JOB - - # SIGKILL a container - $ docker kill $JOB - - # Remove a container - $ docker stop $JOB # Container must be stopped to remove it - $ docker rm $JOB - -## Bind a service on a TCP port - - # Bind port 4444 of this container, and tell netcat to listen on it - $ JOB=$(docker run -d -p 4444 ubuntu:12.10 /bin/nc -l 4444) - - # Which public port is NATed to my container? - $ PORT=$(docker port $JOB 4444 | awk -F: '{ print $2 }') - - # Connect to the public port - $ echo hello world | nc 127.0.0.1 $PORT - - # Verify that the network connection worked - $ echo "Daemon received: $(docker logs $JOB)" - -## Committing (saving) a container state - -To save the current state of a container as an image: - - $ docker commit - -When you commit your container, Docker Engine only stores the diff (difference) between -the source image and the current state of the container's image. To list images -you already have, run: - - # List your images - $ docker images - -You now have an image state from which you can create new instances. - -## Where to go next - -* Work your way through the [Docker Engine User Guide](userguide/index.md) -* Read more about [Store Images on Docker Hub](userguide/containers/dockerrepos.md) -* Review [Command Line](reference/commandline/cli.md) diff --git a/docs/reference/api/docker_remote_api_v1.18.md b/docs/reference/api/docker_remote_api_v1.18.md index 02c8caa70c..0112088bf9 100644 --- a/docs/reference/api/docker_remote_api_v1.18.md +++ b/docs/reference/api/docker_remote_api_v1.18.md @@ -15,7 +15,7 @@ weight = 3 - The Remote API has replaced `rcli`. - The daemon listens on `unix:///var/run/docker.sock` but you can - [Bind Docker to another host/port or a Unix socket](../../quickstart.md#bind-docker-to-another-host-port-or-a-unix-socket). + [Bind Docker to another host/port or a Unix socket](../commandline/dockerd.md#bind-docker-to-another-host-port-or-a-unix-socket). - The API tends to be REST, but for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `STDOUT`, `STDIN` and `STDERR`. diff --git a/docs/reference/api/docker_remote_api_v1.19.md b/docs/reference/api/docker_remote_api_v1.19.md index c38a349934..078b3ad429 100644 --- a/docs/reference/api/docker_remote_api_v1.19.md +++ b/docs/reference/api/docker_remote_api_v1.19.md @@ -15,7 +15,7 @@ weight = 2 - The Remote API has replaced `rcli`. - The daemon listens on `unix:///var/run/docker.sock` but you can - [Bind Docker to another host/port or a Unix socket](../../quickstart.md#bind-docker-to-another-host-port-or-a-unix-socket). + [Bind Docker to another host/port or a Unix socket](../commandline/dockerd.md#bind-docker-to-another-host-port-or-a-unix-socket). - The API tends to be REST. However, for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout`, `stdin` and `stderr`. diff --git a/docs/reference/api/docker_remote_api_v1.20.md b/docs/reference/api/docker_remote_api_v1.20.md index 5703fcd2c0..05bfeff6b3 100644 --- a/docs/reference/api/docker_remote_api_v1.20.md +++ b/docs/reference/api/docker_remote_api_v1.20.md @@ -15,7 +15,7 @@ weight = 1 - The Remote API has replaced `rcli`. - The daemon listens on `unix:///var/run/docker.sock` but you can - [Bind Docker to another host/port or a Unix socket](../../quickstart.md#bind-docker-to-another-host-port-or-a-unix-socket). + [Bind Docker to another host/port or a Unix socket](../commandline/dockerd.md#bind-docker-to-another-host-port-or-a-unix-socket). - The API tends to be REST. However, for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout`, `stdin` and `stderr`. @@ -1362,12 +1362,12 @@ or being killed. Query Parameters: -- **dockerfile** - Path within the build context to the Dockerfile. This is +- **dockerfile** - Path within the build context to the Dockerfile. This is ignored if `remote` is specified and points to an individual filename. - **t** – A repository name (and optionally a tag) to apply to the resulting image in case of success. -- **remote** – A Git repository URI or HTTP/HTTPS URI build source. If the - URI specifies a filename, the file's contents are placed into a file +- **remote** – A Git repository URI or HTTP/HTTPS URI build source. If the + URI specifies a filename, the file's contents are placed into a file called `Dockerfile`. - **q** – Suppress verbose build output. - **nocache** – Do not use the cache when building the image. @@ -2338,7 +2338,7 @@ from **200 OK** to **101 UPGRADED** and resends the same headers. ## 3.3 CORS Requests -To set cross origin requests to the remote api please give values to +To set cross origin requests to the remote api please give values to `--api-cors-header` when running Docker in daemon mode. Set * (asterisk) allows all, default or blank means CORS disabled diff --git a/docs/reference/api/docker_remote_api_v1.21.md b/docs/reference/api/docker_remote_api_v1.21.md index bc6edec4b9..b33f9f638f 100644 --- a/docs/reference/api/docker_remote_api_v1.21.md +++ b/docs/reference/api/docker_remote_api_v1.21.md @@ -15,7 +15,7 @@ weight=-2 - The Remote API has replaced `rcli`. - The daemon listens on `unix:///var/run/docker.sock` but you can - [Bind Docker to another host/port or a Unix socket](../../quickstart.md#bind-docker-to-another-host-port-or-a-unix-socket). + [Bind Docker to another host/port or a Unix socket](../commandline/dockerd.md#bind-docker-to-another-host-port-or-a-unix-socket). - The API tends to be REST. However, for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout`, `stdin` and `stderr`. diff --git a/docs/reference/api/docker_remote_api_v1.22.md b/docs/reference/api/docker_remote_api_v1.22.md index 5e01d45133..d22ec73fe9 100644 --- a/docs/reference/api/docker_remote_api_v1.22.md +++ b/docs/reference/api/docker_remote_api_v1.22.md @@ -15,7 +15,7 @@ weight=-3 - The Remote API has replaced `rcli`. - The daemon listens on `unix:///var/run/docker.sock` but you can - [Bind Docker to another host/port or a Unix socket](../../quickstart.md#bind-docker-to-another-host-port-or-a-unix-socket). + [Bind Docker to another host/port or a Unix socket](../commandline/dockerd.md#bind-docker-to-another-host-port-or-a-unix-socket). - The API tends to be REST. However, for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout`, `stdin` and `stderr`. diff --git a/docs/reference/api/docker_remote_api_v1.23.md b/docs/reference/api/docker_remote_api_v1.23.md index be13d59c9d..f273e093d4 100644 --- a/docs/reference/api/docker_remote_api_v1.23.md +++ b/docs/reference/api/docker_remote_api_v1.23.md @@ -15,7 +15,7 @@ weight=-4 - The Remote API has replaced `rcli`. - The daemon listens on `unix:///var/run/docker.sock` but you can - [Bind Docker to another host/port or a Unix socket](../../quickstart.md#bind-docker-to-another-host-port-or-a-unix-socket). + [Bind Docker to another host/port or a Unix socket](../commandline/dockerd.md#bind-docker-to-another-host-port-or-a-unix-socket). - The API tends to be REST. However, for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout`, `stdin` and `stderr`. diff --git a/docs/reference/api/docker_remote_api_v1.24.md b/docs/reference/api/docker_remote_api_v1.24.md index d525a71944..7b2843d7c6 100644 --- a/docs/reference/api/docker_remote_api_v1.24.md +++ b/docs/reference/api/docker_remote_api_v1.24.md @@ -15,7 +15,7 @@ weight=-5 - The Remote API has replaced `rcli`. - The daemon listens on `unix:///var/run/docker.sock` but you can - [Bind Docker to another host/port or a Unix socket](../../quickstart.md#bind-docker-to-another-host-port-or-a-unix-socket). + [Bind Docker to another host/port or a Unix socket](../commandline/dockerd.md#bind-docker-to-another-host-port-or-a-unix-socket). - The API tends to be REST. However, for some complex commands, like `attach` or `pull`, the HTTP connection is hijacked to transport `stdout`, `stdin` and `stderr`. diff --git a/docs/reference/commandline/dockerd.md b/docs/reference/commandline/dockerd.md index a170e1c726..6888c14ef4 100644 --- a/docs/reference/commandline/dockerd.md +++ b/docs/reference/commandline/dockerd.md @@ -139,6 +139,68 @@ The Docker client will honor the `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables (or the lowercase versions thereof). `HTTPS_PROXY` takes precedence over `HTTP_PROXY`. +### Bind Docker to another host/port or a Unix socket + +> **Warning**: +> Changing the default `docker` daemon binding to a +> TCP port or Unix *docker* user group will increase your security risks +> by allowing non-root users to gain *root* access on the host. Make sure +> you control access to `docker`. If you are binding +> to a TCP port, anyone with access to that port has full Docker access; +> so it is not advisable on an open network. + +With `-H` it is possible to make the Docker daemon to listen on a +specific IP and port. By default, it will listen on +`unix:///var/run/docker.sock` to allow only local connections by the +*root* user. You *could* set it to `0.0.0.0:2375` or a specific host IP +to give access to everybody, but that is **not recommended** because +then it is trivial for someone to gain root access to the host where the +daemon is running. + +Similarly, the Docker client can use `-H` to connect to a custom port. +The Docker client will default to connecting to `unix:///var/run/docker.sock` +on Linux, and `tcp://127.0.0.1:2376` on Windows. + +`-H` accepts host and port assignment in the following format: + + tcp://[host]:[port][path] or unix://path + +For example: + +- `tcp://` -> TCP connection to `127.0.0.1` on either port `2376` when TLS encryption + is on, or port `2375` when communication is in plain text. +- `tcp://host:2375` -> TCP connection on + host:2375 +- `tcp://host:2375/path` -> TCP connection on + host:2375 and prepend path to all requests +- `unix://path/to/socket` -> Unix socket located + at `path/to/socket` + +`-H`, when empty, will default to the same value as +when no `-H` was passed in. + +`-H` also accepts short form for TCP bindings: + + `host:` or `host:port` or `:port` + +Run Docker in daemon mode: + + $ sudo /dockerd -H 0.0.0.0:5555 & + +Download an `ubuntu` image: + + $ docker -H :5555 pull ubuntu + +You can use multiple `-H`, for example, if you want to listen on both +TCP and a Unix socket + + # Run docker in daemon mode + $ sudo /dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock & + # Download an ubuntu image, use default Unix socket + $ docker pull ubuntu + # OR use the TCP port + $ docker -H tcp://127.0.0.1:2375 pull ubuntu + ### Daemon storage-driver option The Docker daemon has support for several different image layer storage @@ -529,7 +591,7 @@ can specify default container isolation technology with this, for example: Will make `hyperv` the default isolation technology on Windows. If no isolation value is specified on daemon start, on Windows client, the default is -`hyperv`, and on Windows server, the default is `process`. +`hyperv`, and on Windows server, the default is `process`. ## Daemon DNS options diff --git a/docs/understanding-docker.md b/docs/understanding-docker.md index 3451e63164..1eec093eb6 100644 --- a/docs/understanding-docker.md +++ b/docs/understanding-docker.md @@ -1,16 +1,20 @@ -# Understand the architecture +# Docker Overview Docker is an open platform for developing, shipping, and running applications. Docker is designed to deliver your applications faster. With Docker you can @@ -22,6 +26,8 @@ running code. Docker does this by combining kernel containerization features with workflows and tooling that help you manage and deploy your applications. +## What is the Docker platform? + At its core, Docker provides a way to run almost any application securely isolated in a container. The isolation and security allow you to run many containers simultaneously on your host. The lightweight nature of containers, @@ -37,6 +43,24 @@ and testing * Deploy those applications to your production environment, whether it is in a local data center or the Cloud +## What is Docker Engine? + +Docker Engine is a client-server application with these major components: + +* A server which is a type of long-running program called a daemon process. + +* A REST API which specifies interfaces that programs can use to talk to the daemon and instruct it what to do. + +* A command line interface (CLI) client. + +![Docker Engine Components Flow](article-img/engine-components-flow.png) + +The CLI imakes use of the Docker REST API to control or interact with the Docker daemon through scripting or direct CLI commands. Many other Docker applications make use of the underlying API and CLI. + +The daemon creates and manages Docker objects. Docker objects include images, containers, networks, data volumes, and so forth. + +> **Note:** Docker is licensed under the open source Apache 2.0 license. + ## What can I use Docker for? *Faster delivery of your applications* @@ -70,17 +94,6 @@ environments: for example, building your own Cloud or Platform-as-a-Service. But it is also useful for small and medium deployments where you want to get more out of the resources you have. -## What are the major Docker components? -Docker has two major components: - - -* Docker Engine: the open source containerization platform. -* [Docker Hub](https://hub.docker.com): our Software-as-a-Service - platform for sharing and managing Docker containers. - - -> **Note:** Docker is licensed under the open source Apache 2.0 license. - ## What is Docker's architecture? Docker uses a client-server architecture. The Docker *client* talks to the Docker *daemon*, which does the heavy lifting of building, running, and