158 lines
5.2 KiB
Markdown
158 lines
5.2 KiB
Markdown
|
#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)
|