docker
- Image
- Container
- Networks
- Volume
- Remove all unused data (images, containers, networks, volumes)
- Access shell inside the container
- Run a docker container on a server
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)