UbuntuXenial:Docker

De Wiki Fred
Aller à : navigation, rechercher
Docker


Références


Docker
Documentation Docker

Installation


  • Installer la clé GPG du repository Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • Ajouter le repository Docker
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • Mettre à jour la liste des packages
apt-get update
  • Installer artifactory
apt-get -y install docker-ce
  • Vérifier l'installation
docker -v


Configuration des droits


Par défaut, la plupart des commandes Docker ne peuvent être utilisées qu'avec l'utilisateur root

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/networks: dial unix /var/run/docker.sock: connect: permission denied

Pour pouvoir utiliser Docker avec l'utilisateur john

  • Créer le groupe docker et y ajouter l'utilisateur john
groupadd docker
usermod -aG docker john
  • Se déconnecter ou redémarrer

Configuration Réseau


Lors de l'installation Docker crée automatiquement 3 réseaux

docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
e0db932286a0        bridge              bridge              local
a1948dcb907a        host                host                local
b284d94eb87b        none                null                local

Le réseau bridge est représenté par l'interface docker0

ifconfig -a

docker0   Link encap:Ethernet  HWaddr 02:42:47:bc:3a:eb
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:47ff:febc:3aeb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1100 (1.1 KB)  TX bytes:648 (648.0 B)

Lors de son installation Docker reconfigure iptables. En partant d'une situation avec les tables filter et nat complètement vide, une fois Docker installé

Table filter

iptables -t filter -nvL

Chain INPUT (policy ACCEPT 731 packets, 56013 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 530 packets, 82915 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain DOCKER-ISOLATION (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Table nat

iptables -t filter -nvL

Chain PREROUTING (policy ACCEPT 22 packets, 5293 bytes)
 pkts bytes target     prot opt in     out     source               destination
    2   156 DOCKER     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT 22 packets, 5293 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 47 packets, 4574 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DOCKER     all  --  *      *       0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT 47 packets, 4574 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  *      !docker0  172.17.0.0/16        0.0.0.0/0

Chain DOCKER (2 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0