mirror of https://github.com/portainer/portainer
docs(project): new documentation (#229)
parent
f8c8668863
commit
b8e420e0e8
|
@ -1,10 +1,4 @@
|
|||
logs/*
|
||||
!.gitkeep
|
||||
*.esproj/*
|
||||
node_modules
|
||||
bower_components
|
||||
.idea
|
||||
*.iml
|
||||
dist
|
||||
dist/*
|
||||
portainer-checksum.txt
|
||||
|
|
162
README.md
162
README.md
|
@ -1,165 +1,81 @@
|
|||
# Portainer
|
||||
|
||||
The easiest way to manage Docker.
|
||||
|
||||
[![Microbadger](https://images.microbadger.com/badges/image/portainer/portainer.svg)](http://microbadger.com/images/portainer/portainer "Image size")
|
||||
[![Gitter](https://badges.gitter.im/portainer/Lobby.svg)](https://gitter.im/portainer/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
|
||||
Portainer is a web interface for the Docker remote API.
|
||||
Portainer is a lightweight management UI which allows you to **easily** manage your Docker host or Swarm cluster.
|
||||
|
||||
![Dashboard](/dashboard.png)
|
||||
# Usage
|
||||
|
||||
## Supported Docker versions
|
||||
It's really simple to deploy it using Docker:
|
||||
|
||||
The following Docker versions are supported:
|
||||
|
||||
* full support for Docker 1.10, 1.11 and 1.12
|
||||
* partial support for Docker 1.9 (some features won't be available)
|
||||
|
||||
## Run
|
||||
|
||||
### Quickstart
|
||||
|
||||
1. Run: `docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer`
|
||||
|
||||
2. Open your browser to `http://<dockerd host ip>:9000`
|
||||
|
||||
Bind mounting the Unix socket into the Portainer container is much more secure than exposing your docker daemon over TCP.
|
||||
|
||||
The `--privileged` flag is required for hosts using SELinux.
|
||||
|
||||
### Specify socket to connect to Docker daemon
|
||||
|
||||
By default Portainer connects to the Docker daemon with`/var/run/docker.sock`. For this to work you need to bind mount the unix socket into the container with `-v /var/run/docker.sock:/var/run/docker.sock`.
|
||||
|
||||
You can use the `--host`, `-H` flags to change this socket:
|
||||
|
||||
```
|
||||
# Connect to a tcp socket:
|
||||
$ docker run -d -p 9000:9000 portainer/portainer -H tcp://127.0.0.1:2375
|
||||
```shell
|
||||
$ docker run -d -p 9000:9000 portainer/portainer -H tcp://<DOCKER_HOST>:<DOCKER_PORT>
|
||||
```
|
||||
|
||||
```
|
||||
# Connect to another unix socket:
|
||||
$ docker run -d -p 9000:9000 portainer/portainer -H unix:///path/to/docker.sock
|
||||
```
|
||||
Just point it at your targeted Docker host and then access Portainer by hitting [http://localhost:9000](http://localhost:9000) with a web browser.
|
||||
|
||||
### Swarm support
|
||||
If your target is a Docker Swarm cluster or a Docker cluster using *swarm mode*, just add the flag `--swarm`:
|
||||
|
||||
**Supported Swarm version: 1.2.3**
|
||||
|
||||
You can access a specific view for you Swarm cluster by defining the `--swarm` flag:
|
||||
|
||||
```
|
||||
# Connect to a tcp socket and enable Swarm:
|
||||
```shell
|
||||
$ docker run -d -p 9000:9000 portainer/portainer -H tcp://<SWARM_HOST>:<SWARM_PORT> --swarm
|
||||
```
|
||||
|
||||
*NOTE*: Due to Swarm not exposing information in a machine readable way, the app is bound to a specific version of Swarm at the moment.
|
||||
If you don't specify any target, its default behaviour is to use a bind mount on the Docker socket so you can easily deploy it to manage your local Docker host:
|
||||
|
||||
### Change address/port Portainer is served on
|
||||
Portainer listens on port 9000 by default. If you run Portainer inside a container then you can bind the container's internal port to any external address and port:
|
||||
|
||||
```
|
||||
# Expose Portainer on 10.20.30.1:80
|
||||
$ docker run -d -p 10.20.30.1:80:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
|
||||
```shell
|
||||
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
|
||||
```
|
||||
|
||||
### Access a Docker engine protected via TLS
|
||||
Have a look at our [wiki](https://github.com/portainer/portainer/wiki/Deployment) for more deployment options.
|
||||
|
||||
Ensure that you have access to the CA, the cert and the public key used to access your Docker engine.
|
||||
# Configuration
|
||||
|
||||
These files will need to be named `ca.pem`, `cert.pem` and `key.pem` respectively. Store them somewhere on your disk and mount a volume containing these files inside the UI container:
|
||||
Portainer is easy to tune using CLI flags.
|
||||
|
||||
```
|
||||
$ docker run -d -p 9000:9000 portainer/portainer -v /path/to/certs:/certs -H https://my-docker-host.domain:2376 --tlsverify
|
||||
```
|
||||
## Hiding specific containers
|
||||
|
||||
You can also use the `--tlscacert`, `--tlscert` and `--tlskey` flags if you want to change the default path to the CA, certificate and key file respectively:
|
||||
|
||||
```
|
||||
$ docker run -d -p 9000:9000 portainer/portainer -v /path/to/certs:/certs -H https://my-docker-host.domain:2376 --tlsverify --tlscacert /certs/myCa.pem --tlscert /certs/myCert.pem --tlskey /certs/myKey.pem
|
||||
```
|
||||
|
||||
*Note*: Replace `/path/to/certs` to the path to the certificate files on your disk.
|
||||
|
||||
### Use your own logo
|
||||
|
||||
You can use the `--logo` flag to specify an URL to your own logo.
|
||||
|
||||
For example, using the Docker logo:
|
||||
|
||||
```
|
||||
$ docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer --logo "https://www.docker.com/sites/all/themes/docker/assets/images/brand-full.svg"
|
||||
```
|
||||
|
||||
The custom logo will replace the Portainer logo in the UI.
|
||||
|
||||
### Hide containers with specific labels
|
||||
|
||||
You can hide specific containers in the containers view by using the `--hide-label` or `-l` options and specifying a label.
|
||||
Portainer allows you to hide container with a specific label by using the `-l` flag.
|
||||
|
||||
For example, take a container started with the label `owner=acme`:
|
||||
|
||||
```
|
||||
```shell
|
||||
$ docker run -d --label owner=acme nginx
|
||||
```
|
||||
|
||||
You can hide it in the view by starting the ui with:
|
||||
|
||||
```
|
||||
$ docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer -l owner=acme
|
||||
Simply add the `-l owner=acme` option on the CLI when starting Portainer:
|
||||
```shell
|
||||
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer -l owner=acme
|
||||
```
|
||||
|
||||
### Reverse proxy configuration
|
||||
## Use your own templates
|
||||
|
||||
Has been tested with Nginx 1.11.
|
||||
Portainer allows you to rapidly deploy containers using `App Templates`.
|
||||
|
||||
Use the following configuration to host the UI at `myhost.mydomain.com/portainer`:
|
||||
By default [Portainer templates](https://raw.githubusercontent.com/portainer/templates/master/templates.json) will be used but you can also define your own templates.
|
||||
|
||||
```nginx
|
||||
upstream portainer {
|
||||
server ADDRESS:PORT;
|
||||
}
|
||||
Add the `--templates` flag and specify the external location of your templates when starting Portainer:
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location /portainer/ {
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
proxy_pass http://portainer/;
|
||||
}
|
||||
location /portainer/ws/ {
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_http_version 1.1;
|
||||
proxy_pass http://portainer/ws/;
|
||||
}
|
||||
}
|
||||
```shell
|
||||
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer --templates http://my-host.my-domain/templates.json
|
||||
```
|
||||
|
||||
Replace `ADDRESS:PORT` with the Portainer container details.
|
||||
For more information about hosting your own template definitions and the format, see: https://github.com/portainer/templates
|
||||
|
||||
### Host your own apps
|
||||
Have a look at our [wiki](https://github.com/portainer/portainer/wiki/Configuration) for more configuration options.
|
||||
|
||||
You can specify an URL to your own templates (**Apps**) definitions using the `--templates` or `-t` flags.
|
||||
# FAQ
|
||||
|
||||
By default, the following templates will be used (https://raw.githubusercontent.com/portainer/templates/master/templates.json).
|
||||
Be sure to check our [FAQ](https://github.com/portainer/portainer/wiki/FAQ) if you are missing some information.
|
||||
|
||||
For more information about hosting your own template definition and the format, see: https://github.com/portainer/templates
|
||||
# Limitations
|
||||
|
||||
### Available options
|
||||
Portainer has full support for the following Docker versions:
|
||||
|
||||
The following options are available for the `portainer` binary:
|
||||
* Docker 1.10 to Docker 1.12 (including `swarm-mode`)
|
||||
* Docker Swarm >= 1.2.3
|
||||
|
||||
* `--host`, `-H`: Docker daemon endpoint (default: `"unix:///var/run/docker.sock"`)
|
||||
* `--bind`, `-p`: Address and port to serve Portainer (default: `":9000"`)
|
||||
* `--data`, `-d`: Path to the data folder (default: `"."`)
|
||||
* `--assets`, `-a`: Path to the assets (default: `"."`)
|
||||
* `--swarm`, `-s`: Swarm cluster support (default: `false`)
|
||||
* `--tlsverify`: TLS support (default: `false`)
|
||||
* `--tlscacert`: Path to the CA (default `/certs/ca.pem`)
|
||||
* `--tlscert`: Path to the TLS certificate file (default `/certs/cert.pem`)
|
||||
* `--tlskey`: Path to the TLS key (default `/certs/key.pem`)
|
||||
* `--hide-label`, `-l`: Hide containers with a specific label in the UI
|
||||
* `--logo`: URL to a picture to be displayed as a logo in the UI
|
||||
* `--templates`, `-t`: URL to templates (apps) definitions
|
||||
Partial support for the following Docker versions (some features may not be available):
|
||||
|
||||
* Docker 1.9
|
||||
|
|
BIN
dashboard.png
BIN
dashboard.png
Binary file not shown.
Before Width: | Height: | Size: 56 KiB |
|
@ -1,4 +0,0 @@
|
|||
FROM nginx:latest
|
||||
|
||||
COPY default.conf /etc/nginx/conf.d/default.conf
|
||||
COPY users.htpasswd /etc/nginx/users.htpasswd
|
|
@ -1,17 +0,0 @@
|
|||
upstream portainer {
|
||||
server portainer:9000;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
|
||||
location / {
|
||||
auth_basic "Docker UI";
|
||||
auth_basic_user_file /etc/nginx/users.htpasswd;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Connection "";
|
||||
proxy_pass http://portainer;
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
portainer:
|
||||
image: portainer/portainer
|
||||
command: -e http://<SWARM_HOST>:<SWARM_PORT>
|
||||
|
||||
nginx:
|
||||
build: .
|
||||
links:
|
||||
- portainer
|
||||
ports:
|
||||
- 80:80
|
|
@ -1 +0,0 @@
|
|||
user:{PLAIN}password
|
Loading…
Reference in New Issue