]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - doc/Docker.md
Update docs from Wiki
[github/shaarli/Shaarli.git] / doc / Docker.md
diff --git a/doc/Docker.md b/doc/Docker.md
new file mode 100644 (file)
index 0000000..1faa790
--- /dev/null
@@ -0,0 +1,157 @@
+#Docker
+- [Docker usage](#docker-usage)[](.html)
+- [Get and run a Shaarli image](#get-and-run-a-shaarli-image)[](.html)
+- [Resources](#resources)[](.html)
+
+## Docker usage
+### Basics
+Install [Docker](https://www.docker.com/), by following the instructions relevant[](.html)
+to your OS / distribution, and start the service.
+
+#### Search an image on [DockerHub](https://hub.docker.com/)[](.html)
+
+```bash
+$ docker search debian
+
+NAME            DESCRIPTION                                     STARS   OFFICIAL   AUTOMATED
+ubuntu          Ubuntu is a Debian-based Linux operating s...   2065    [OK][](.html)
+debian          Debian is a Linux distribution that's comp...   603     [OK][](.html)
+google/debian                                                   47                 [OK][](.html)
+```
+
+#### Show available tags for a repository
+```bash
+$ curl https://index.docker.io/v1/repositories/debian/tags | python -m json.tool
+
+% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
+Dload  Upload   Total   Spent    Left  Speed
+100  1283    0  1283    0     0    433      0 --:--:--  0:00:02 --:--:--   433
+```
+
+Sample output:
+```json
+[[](.html)
+    {
+        "layer": "85a02782",
+        "name": "stretch"
+    },
+    {
+        "layer": "59abecbc",
+        "name": "testing"
+    },
+    {
+        "layer": "bf0fd686",
+        "name": "unstable"
+    },
+    {
+        "layer": "60c52dbe",
+        "name": "wheezy"
+    },
+    {
+        "layer": "c5b806fe",
+        "name": "wheezy-backports"
+    }
+]
+
+```
+
+#### Pull an image from DockerHub
+```bash
+$ docker pull repository[:tag][](.html)
+
+$ docker pull debian:wheezy
+wheezy: Pulling from debian
+4c8cbfd2973e: Pull complete
+60c52dbe9d91: Pull complete
+Digest: sha256:c584131da2ac1948aa3e66468a4424b6aea2f33acba7cec0b631bdb56254c4fe
+Status: Downloaded newer image for debian:wheezy
+```
+
+## Get and run a Shaarli image
+### DockerHub repository
+The images can be found in the [`shaarli/shaarli`](https://hub.docker.com/r/shaarli/shaarli/)[](.html)
+repository.
+
+### Available image tags
+- `latest`: master branch (tarball release)
+- `stable`: stable branch (tarball release)
+- `dev`: master branch (Git clone)
+
+All images rely on:
+- [Debian 8 Jessie](https://hub.docker.com/_/debian/)[](.html)
+- [PHP5-FPM](http://php-fpm.org/)[](.html)
+- [Nginx](http://nginx.org/)[](.html)
+
+### Download from DockerHub
+```bash
+$ docker pull shaarli/shaarli
+latest: Pulling from shaarli/shaarli
+32716d9fcddb: Pull complete
+84899d045435: Pull complete
+4b6ad7444763: Pull complete
+e0345ef7a3e0: Pull complete
+5c1dd344094f: Pull complete
+6422305a200b: Pull complete
+7d63f861dbef: Pull complete
+3eb97210645c: Pull complete
+869319d746ff: Already exists
+869319d746ff: Pulling fs layer
+902b87aaaec9: Already exists
+Digest: sha256:f836b4627b958b3f83f59c332f22f02fcd495ace3056f2be2c4912bd8704cc98
+Status: Downloaded newer image for shaarli/shaarli:latest
+```
+
+### Create and start a new container from the image
+```bash
+# map the host's :8000 port to the container's :80 port
+$ docker create -p 8000:80 shaarli/shaarli
+d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
+
+# launch the container in the background
+$ docker start d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
+d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101
+
+# list active containers
+$ docker ps
+CONTAINER ID  IMAGE            COMMAND               CREATED         STATUS        PORTS                 NAMES
+d40b7af693d6  shaarli/shaarli  /usr/bin/supervisor  15 seconds ago  Up 4 seconds  0.0.0.0:8000->80/tcp  backstabbing_galileo
+```
+
+### Stop and destroy a container
+```bash
+$ docker stop backstabbing_galileo  # those docker guys are really rude to physicists!
+backstabbing_galileo
+
+# check the container is stopped
+$ docker ps
+CONTAINER ID  IMAGE            COMMAND               CREATED         STATUS        PORTS                 NAMES
+
+# list ALL containers
+$ docker ps -a
+CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                      PORTS               NAMES
+d40b7af693d6        shaarli/shaarli     /usr/bin/supervisor   5 minutes ago       Exited (0) 48 seconds ago                       backstabbing_galileo
+
+# destroy the container
+$ docker rm backstabbing_galileo  # let's put an end to these barbarian practices
+backstabbing_galileo
+
+$ docker ps -a
+CONTAINER ID  IMAGE            COMMAND               CREATED         STATUS        PORTS                 NAMES
+```
+
+## Resources
+### Docker
+- [Where are Docker images stored?](http://blog.thoward37.me/articles/where-are-docker-images-stored/)[](.html)
+- [Dockerfile reference](https://docs.docker.com/reference/builder/)[](.html)
+- [Dockerfile best practices](https://docs.docker.com/articles/dockerfile_best-practices/)[](.html)
+- [Volumes](https://docs.docker.com/userguide/dockervolumes/)[](.html)
+
+### DockerHub
+- [Repositories](https://docs.docker.com/userguide/dockerrepos/)[](.html)
+- [Teams and organizations](https://docs.docker.com/docker-hub/orgs/)[](.html)
+- [GitHub automated build](https://docs.docker.com/docker-hub/github/)[](.html)
+
+### Service management
+- [Using supervisord](https://docs.docker.com/articles/using_supervisord/)[](.html)
+- [Nginx in the foreground](http://nginx.org/en/docs/ngx_core_module.html#daemon)[](.html)
+- [supervisord](http://supervisord.org/)[](.html)