]>
Commit | Line | Data |
---|---|---|
32488257 | 1 | A brief guide on getting starting using docker is given in [Docker 101](docker-101.md). |
2 | To learn more about user data and how to keep it across versions, please see [Upgrade and Migration](../Upgrade-and-migration.md). | |
3 | ||
53ed6d7d | 4 | ## Get and run a Shaarli image |
5 | ||
6 | ### DockerHub repository | |
7 | The images can be found in the [`shaarli/shaarli`](https://hub.docker.com/r/shaarli/shaarli/) | |
8 | repository. | |
9 | ||
10 | ### Available image tags | |
c064d317 V |
11 | - `latest`: latest branch |
12 | - `master`: master branch | |
13 | - `stable`: stable branch | |
53ed6d7d | 14 | |
fab0f4e5 V |
15 | The `latest` and `master` images rely on: |
16 | ||
17 | - [Alpine Linux](https://www.alpinelinux.org/) | |
18 | - [PHP7-FPM](http://php-fpm.org/) | |
19 | - [Nginx](http://nginx.org/) | |
20 | ||
21 | The `stable` image relies on: | |
22 | ||
53ed6d7d | 23 | - [Debian 8 Jessie](https://hub.docker.com/_/debian/) |
24 | - [PHP5-FPM](http://php-fpm.org/) | |
25 | - [Nginx](http://nginx.org/) | |
26 | ||
c064d317 V |
27 | Additional Dockerfiles are provided for the `arm32v7` platform, relying on |
28 | [Linuxserver.io Alpine armhf | |
29 | images](https://hub.docker.com/r/lsiobase/alpine.armhf/). These images must be | |
30 | built using [`docker | |
31 | build`](https://docs.docker.com/engine/reference/commandline/build/) on an | |
32 | `arm32v7` machine or using an emulator such as | |
33 | [qemu](https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/). | |
fab0f4e5 | 34 | |
186d9eaa V |
35 | ### Download from Docker Hub |
36 | ```shell | |
53ed6d7d | 37 | $ docker pull shaarli/shaarli |
186d9eaa | 38 | |
53ed6d7d | 39 | latest: Pulling from shaarli/shaarli |
40 | 32716d9fcddb: Pull complete | |
41 | 84899d045435: Pull complete | |
42 | 4b6ad7444763: Pull complete | |
43 | e0345ef7a3e0: Pull complete | |
44 | 5c1dd344094f: Pull complete | |
45 | 6422305a200b: Pull complete | |
46 | 7d63f861dbef: Pull complete | |
47 | 3eb97210645c: Pull complete | |
48 | 869319d746ff: Already exists | |
49 | 869319d746ff: Pulling fs layer | |
50 | 902b87aaaec9: Already exists | |
51 | Digest: sha256:f836b4627b958b3f83f59c332f22f02fcd495ace3056f2be2c4912bd8704cc98 | |
52 | Status: Downloaded newer image for shaarli/shaarli:latest | |
53 | ``` | |
54 | ||
55 | ### Create and start a new container from the image | |
186d9eaa | 56 | ```shell |
53ed6d7d | 57 | # map the host's :8000 port to the container's :80 port |
58 | $ docker create -p 8000:80 shaarli/shaarli | |
59 | d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101 | |
60 | ||
61 | # launch the container in the background | |
62 | $ docker start d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101 | |
63 | d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101 | |
64 | ||
65 | # list active containers | |
66 | $ docker ps | |
67 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |
68 | d40b7af693d6 shaarli/shaarli /usr/bin/supervisor 15 seconds ago Up 4 seconds 0.0.0.0:8000->80/tcp backstabbing_galileo | |
69 | ``` | |
70 | ||
71 | ### Stop and destroy a container | |
186d9eaa | 72 | ```shell |
53ed6d7d | 73 | $ docker stop backstabbing_galileo # those docker guys are really rude to physicists! |
74 | backstabbing_galileo | |
75 | ||
76 | # check the container is stopped | |
77 | $ docker ps | |
78 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |
79 | ||
80 | # list ALL containers | |
81 | $ docker ps -a | |
82 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |
83 | d40b7af693d6 shaarli/shaarli /usr/bin/supervisor 5 minutes ago Exited (0) 48 seconds ago backstabbing_galileo | |
84 | ||
85 | # destroy the container | |
86 | $ docker rm backstabbing_galileo # let's put an end to these barbarian practices | |
87 | backstabbing_galileo | |
88 | ||
89 | $ docker ps -a | |
90 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | |
91 | ``` | |
60ca6354 | 92 | |
93 | ### Automatic builds | |
186d9eaa V |
94 | Docker users can start a personal instance from an |
95 | [autobuild image](https://hub.docker.com/r/shaarli/shaarli/). | |
96 | For example to start a temporary Shaarli at ``localhost:8000``, and keep session | |
97 | data (config, storage): | |
60ca6354 | 98 | |
186d9eaa | 99 | ```shell |
60ca6354 | 100 | MY_SHAARLI_VOLUME=$(cd /path/to/shaarli/data/ && pwd -P) |
101 | docker run -ti --rm \ | |
102 | -p 8000:80 \ | |
103 | -v $MY_SHAARLI_VOLUME:/var/www/shaarli/data \ | |
104 | shaarli/shaarli | |
105 | ``` | |
186d9eaa V |
106 | |
107 | ### Volumes and data persistence | |
108 | Data can be persisted by [using volumes](https://docs.docker.com/storage/volumes/). | |
109 | Volumes allow to keep your data when renewing and/or updating container images: | |
110 | ||
111 | ```shell | |
112 | # Create data volumes | |
113 | $ docker volume create shaarli-data | |
114 | $ docker volume create shaarli-cache | |
115 | ||
116 | # Create and start a Shaarli container using these volumes to persist data | |
117 | $ docker create \ | |
118 | --name shaarli \ | |
119 | -v shaarli-cache:/var/www/shaarli/cache \ | |
120 | -v shaarli-data:/var/www/shaarli/data \ | |
121 | -p 8000:80 \ | |
122 | shaarli/shaarli:master | |
123 | $ docker start shaarli | |
124 | ``` |