Académique Documents
Professionnel Documents
Culture Documents
docker architecture
docker il a une architecture client serveur
docker deamon et client peut etre situ� sur le meme serveur ou s�par�
docker client et deamon communique via socket
-docker client : c'est un utilisateur qui lance des requets de �xecuter une
op�ration avec docker deamon(cr�er,suprimer,modifier,d�placer un conteneur docker)
il poss�de docker CLI qui permet d'effectuer un nombre de tache sur conteneur c'est
actions sont : docker pull , docker run ,docker build,docker push
-docker deamon :il est toujours �xecuter sur le syst�me qui contient un conteneur
il permet de g�rer les conteneurs et les images
image est utilis� pour cr�er un conteneur
-un conteneur : contient les binaires et les librairies requise pour le travail
d'une application
-registery : contient les images et conteneurs d�ja cr�er = pulic remote docker
regisetry :Docker Hub
installation docker
-dokcer fonction seulement on 64-bit linux pour verifier :
cat /etc/*release | grep -w NAME
-docker fonctionne sur kernel 3.10 ou plus
uname -r
il existe deux Edition du docker
docker community edition
docker entreprise edition
ce paquet est requise pour stockage device permet la communication entre docker et
le pr�ph�rique de stockage
#apt-get install device-mapper-persistent-data lvm2
installation docker stable repository
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
instalaltion docker
#apt-get install docker.io
v�rifier le bon fonctionnement de docker
#docker run -it ubuntu /bin/bash
example dockerfile :
# Use an official Python runtime as a parent image
FROM python:2.7-slim
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
# Define environment variable
ENV NAME World
docker build --tag=<tag>
FROM ubuntu:latest
MAINTAINER toubi
LABEL version="" location="" type=""
RUN apt-get install httpd -y;apt-get install initscript -y
RUN adduser docker
RUN //sbin/httpd
USER docker
WORKDIR /var/www/html
container vs image
image est fig� il es en lecture seule alors que conteneur �xecute ou arrete des
instances de certain images
cr�er un image personalis�
docker port <container> = afiche mappage port
docker logs <container> = affiche les logs d'un container
docker inspect <container> = afficher tous les informations d'un container
docker top <container> = affiche les processus actifs dans le container
docker images == liste tous les images tl�charger
docker rm $(docker ps -a -q)
dockerfile contient tous les informations n�cessaire pour cr�ation d'une image
docker
FROM <image de base>
MAINTAINR <propri�taire_script>
RUN <>
CMD <>
PORT <>
Docker Networking :
d�marage d'un container docker implique :
-c�ation d'un bridge : docker0
-assign� une adresse ip priv� et mac assign� a ce bridge
-configuration de table de routage
container contient des applications ces applications n�cessiste l'acc�s au r�seau
(serveur,internet,utilisateurs) pour configurer docker networking afin de permettre
� l'application d'acc�der au r�seau il faut sp�cifier
-type de r�seau
-publier le port(g�n�ralement les conteneurs docker fnt sur des ports priv�s)
-configurer DNS Le mod�le de r�seau de conteneur
diff�rant type de docker container network
bridge :permet de connecter le conteneur � un r�seau LAN et avec d'autre container
-c'est la configuration par d�faut de type de DOCKER CONTAINER NETWORKING
host :enelever l'isolation entre le conteneur et le host
overlay: permet de connecter plusieurs docker host et leurs conteneurs entre eux
et active swarm
possible pour Docker EE et swarm activ� utolise VXLAN
macvlan :
-attriber des adresses MAC au container il apparait comme une machine physique
-permet la connexion a des vlans
none : container est isol� il n'est pas accebile par le r�seau
#docker network ls
#docker network inspect [type_network]
#docker network create --driver bridge app-network cr�er a CDN
#docker run -dit --name app1 --network app-network alpine ash
#docker container attach app1
#docker container stop app1 app2
#docker container rm app1 app2
#docker ntwork rm net-app
#docker network create --driver overlay app-overlay
#docker service create --network app-overlay --name app1 --replicas 6 nginx
#docker service ls
#docker service inspect app-overlay
publish port :
permet d'xposer le port du conteneur docker pour qu'il sois accessible de
l'exterieur c-a-d crer le mappage de port priv�/public
par d�faut les conteneurs sont connecter a un bridge network qui est connecter a
l'interface physique du Docker host ainsi accessible au r�seau LAN ou Internet
par d�faut les conteneurs ont outbound access network mais pas inbound access
network
il faut exposer les ports pour avoir inbound access network
avec docker y'a plus de phrase il marche sur ma machine mais ne marche pas en phase
de deploiement
il approche d�velopement, test et mettre en production
r�duire le d�lai entre �criture, execution et mettre en production le code
permet de d�velopper sur des conteneurs ind�pendament du machine
docker-machine
Docker Machine est un outil qui vous permet d'installer Docker Engine sur des h�tes
virtuels et de g�rer les h�tes � l'aide de docker-machine commandes. Vous pouvez
utiliser Machine pour cr�er des h�tes Docker sur votre ordinateur Mac ou Windows
local, sur le r�seau de votre entreprise, dans votre centre de donn�es ou sur des
fournisseurs de cloud tels que Azure, AWS ou Digital Ocean.
� l'aide de docker-machinecommandes, vous pouvez d�marrer, inspecter, arr�ter et
red�marrer un h�te g�r�, mettre � niveau le client et le d�mon Docker et configurer
un client Docker pour qu'il puisse communiquer avec votre h�te.