Principe. Docker construit des images, grâce à un fichier de configuration Dockerfile. Ensuite, on fait tourner ces images

On fait tout en sudo

Un exemple de Dockerfile

# l'image qui nous sert (en l'occurence php) > ces images sont référencées sur hub.docker.com
FROM lysender/php

# Install Apache  and misc tools
RUN yum -y install supervisor \ 
    httpd \
    make \
    openssl \
    mod_ssl && yum clean all

# Add config files and scripts
ADD ./vhost.conf /etc/httpd/conf.d/default-vhost.conf

# Configure services
ADD ./start.sh /start.sh
ADD ./supervisor-httpd.ini /etc/supervisord.d/httpd.ini

RUN chmod 755 /start.sh

# Les volumes qui seront montés quand le conteneur sera lancé
VOLUME ["/var/www/html/", "/var/log/httpd"]

# le port utilisé
EXPOSE 80

# les commandes lancées au démarrage
CMD ["/bin/bash", "/start.sh"]

Construire une image et la lancer

sudo su
docker build --rm -t myImage .

Ça muuuuuline… Quand c’est bon, on peut lancer l’image

docker run --name myContainer -d -p 8080:80 myImage

Image

List

docker images
docker images -a

delete

docker rmi myImage

remove unused images

docker image prune -a

Container

list

docker ps
docker ps -a

stop

docker stop myContainer

remove

docker rm myContainer

Remove stoppped docker containers

docker container prune

Delete all docker containers

docker rm $(docker ps -a -q)

Networks


Volume

list

docker volume ls

inspect (check paths, e.g.)

docker volume inspect myVolume

remove

docker volume rm myVolume

Remove unused volumes

docker volume prune

Remove all unused data (images, containers, networks, volumes)

docker system prune

http://networkstatic.net/10-examples-of-how-to-get-docker-container-ip-address/ https://stackoverflow.com/questions/25529386/how-can-i-set-a-static-ip-address-in-a-docker-container#35450145

Access shell inside the container

docker exec -it Mycontainer bash

Run a docker container on a server

docker

Build PHP image, and run container

The IP
Manual
docker network create --subnet=172.18.0.0/16 mynet123
docker run --net mynet123 --ip 172.18.0.22 -it ubuntu bash
Automated

On laisse faire Docker

Get the ip

On récupère l’IP en inspectant le container docker

docker inspect CONTAINER_ID

Ça sort un json. trouve l’IP à NetworkSettings.Networks.bridge.IPAddress

apache conf / restart

Le truc, c’est de créer un ProxyPass pour que la conf apache pointe vers cette ip interne

ProxyPass / http://172.0.0.24/
ProxyPassReverse / http://172.0.0.24/
feed volume

Et on copie des données dans le folder

docker cp /my/path myContainer:/var/www/html

On peut ensuite se connecter au shell du container, pour manipuler plus directement les fichiers (cf. ci-dessus)