• Docker
  • [Discussion] Utilisation de Docker

Fait apt-get purge --remove docker.io
yep merci du coup je suis repartie sur du propre
Super tuto xataz, je vais pouvoir approfondire un peut plus docker pour mes environnements de dev ^^
6 jours plus tard
Bonjour,
J'ai voulu installer "proprement" Docker comme décrit dans le tuto.
Et j'ai rencontré plus ou moins le même problème que @Sulsky sauf que je suis sous Debian 7.5 (Wheezy) chez OVH un KS-3.
Je précise que j'ai scrupuleusement suivi le tuto à la lettre.
La première chose qui diffère par rapport aux screens présents dans le tuto (mais je me suis dit que c'était propre à chaque système):
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/bzImage-3.14.27-xxxx-grs-ipv6-64
Found Debian GNU/Linux (stretch/sid) on /dev/sda2
done
A la suite de cela j'ai bien redémarré ma machine mais j'ai constaté que le service docker n'était pas lancé.
Et du coup j'ai lancé un :
service docker start
docker: unrecognized service
Après je me suis dit que j'allais le lancer manuellement et voire ce qu'il en retournait
docker daemon
WARN[0000] Udev sync is not supported. This will lead to unexpected behavior, data loss and errors. For more information, see https://docs.docker.com/reference/commandline/daemon/#daemon-storage-driver-option 
INFO[0000] API listen on /var/run/docker.sock           
WARN[0000] Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section. 
INFO[0000] [graphdriver] using prior storage driver "devicemapper" 
WARN[0000] Running modprobe nf_nat failed with message: `modprobe: ERROR: ../libkmod/libkmod.c:578 kmod_search_moddep() could not open moddep file '/lib/modules/3.14.27-xxxx-grs-ipv6-64/modules.dep.bin'`, error: exit status 1 
INFO[0000] Firewalld running: false                     
INFO[0000] Default bridge (docker0) is assigned with an IP address 172.17.0.1/16. Daemon option --bip can be used to set a preferred IP address 
WARN[0000] Your kernel does not support cgroup memory limit: mountpoint for memory not found 
WARN[0000] mountpoint for cpu not found                 
WARN[0000] mountpoint for blkio not found               
WARN[0000] mountpoint for cpuset not found              
FATA[0000] Error starting daemon: Devices cgroup isn't mounted
C'est là que je me suis dit que ça ressemblait pas mal à ce qu'avait eu @Sulsky sauf que si j'ai bien compris la commande
apt-get install lxc cgroup-lite
n'est pas pour mon système Debian et de toute façon il retourne
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package cgroup-lite is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'cgroup-lite' has no installation candidate
Et pour plus d'informations concernant mon environnement si ça peut aider
docker version
Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.3
 Git commit:   a34a1d5
 Built:        Fri Nov 20 17:56:04 UTC 2015
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
mount
/dev/sda2 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=4035588k,nr_inodes=1008897,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=807224k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
pstore on /sys/fs/pstore type pstore (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1719080k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sda3 on /home/user1 type ext4 (rw,relatime,data=ordered)
/dev/sda5 on /home/user2y type ext4 (rw,relatime,data=ordered)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,size=12k,mode=755)
cgmfs on /run/cgmanager/fs type tmpfs (rw,relatime,size=100k,mode=755)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/usr/lib/x86_64-linux-gnu/systemd-shim-cgroup-release-agent,name=systemd)
user@127.0.0.1:/cygdrive/C/Users/user/X2GO~1/S-2808~1/spool on /tmp/.x2go-root/spool/C-root-50-1452512931_stDmate-session_dp32 type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions)]
Si jamais quelqu'un a une idée... J'aimerai vraiment tester Docker.
Merci d'avance.
Problème venant de debian 7, la procédure sera différente :
$ rm -f /usr/bin/docker
$ apt-get purge lxc-docker*
$ apt-get purge docker.io*
$ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo debian-wheezy main" >> /etc/apt/sources.list.d/docker.list
$ apt-get update && apt-get install docker-engine
$ service docker start
J'invente rien, bêtement piqué sur le site officiel : https://docs.docker.com/engine/installation/debian/#debian-wheezy-stable-7-x-64-bit
Voici ce que j'ai lorsque j'installe de cette façon
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

b901d36b6f2f: Extracting    601 B/601 B
0a6ba66e537a: Download complete 
Pulling repository docker.io/library/hello-world
975b84d108f1: Error pulling image (latest) from docker.io/library/hello-world, endpoint: https://registry-1.docker.io/v1/, Error mounting '/dev/mapper/docker-8:2-881285-3f12c794407e68e515ba7f473a744e748ac8a827a2ea8b33855dec564238b2e5' on 975b84d108f1: Error pulling image (latest) from docker.io/library/hello-world, Error mounting '/dev/mapper/docker-8:2-881285-3f12c794407e68e515ba7f473a744e748ac8a827a2ea8b33855dec564238b2e5' on '/var/lib/docker/devicemapper/mnt/3f12c794407e68e515ba7f473a744e748ac8a827a2ea8b33855dec564238b2e5': invalid argument 

Error pulling image (latest) from docker.io/library/hello-world, Error mounting '/dev/mapper/docker-8:2-881285-3f12c794407e68e515ba7f473a744e748ac8a827a2ea8b33855dec564238b2e5' on '/var/lib/docker/devicemapper/mnt/3f12c794407e68e515ba7f473a744e748ac8a827a2ea8b33855dec564238b2e5': invalid argument
J'ai cherché sur le web comment résoudre ce problème et toutes les solutions trouvées n'ont pas fonctionné...
device mapper semble foutre la merde, on va tester avec aufs :
$ service docker stop
$ apt-get install aufs-tools
$ rm -rf /var/lib/docker/*
Alors la c'est un peu à la veuglette, car je connais pas le script init de docker avec cette méthode (/etc/init.d/docker)
On edite le fichier /etc/default/docker pour ajouter ceci :
DOCKER_OPTS=-s aufs
Puis on relance docker :
$ service docker start
Si cela ne fonctionne pas, pourrais tu me montrer le /etc/init.d/docker.
Le le /etc/init.d/docker. demandé
#!/bin/sh
set -e

### BEGIN INIT INFO
# Provides:           docker
# Required-Start:     $syslog $remote_fs
# Required-Stop:      $syslog $remote_fs
# Should-Start:       cgroupfs-mount cgroup-lite
# Should-Stop:        cgroupfs-mount cgroup-lite
# Default-Start:      2 3 4 5
# Default-Stop:       0 1 6
# Short-Description:  Create lightweight, portable, self-sufficient containers.
# Description:
#  Docker is an open-source project to easily create lightweight, portable,
#  self-sufficient containers from any application. The same container that a
#  developer builds and tests on a laptop can run at scale, in production, on
#  VMs, bare metal, OpenStack clusters, public clouds and more.
### END INIT INFO

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

BASE=docker

# modify these in /etc/default/$BASE (/etc/default/docker)
DOCKER=/usr/bin/$BASE
# This is the pid file managed by docker itself
DOCKER_PIDFILE=/var/run/$BASE.pid
# This is the pid file created/managed by start-stop-daemon
DOCKER_SSD_PIDFILE=/var/run/$BASE-ssd.pid
DOCKER_LOGFILE=/var/log/$BASE.log
DOCKER_OPTS=
DOCKER_DESC="Docker"

# Get lsb functions
. /lib/lsb/init-functions

if [ -f /etc/default/$BASE ]; then
	. /etc/default/$BASE
fi

# Check docker is present
if [ ! -x $DOCKER ]; then
	log_failure_msg "$DOCKER not present or not executable"
	exit 1
fi

check_init() {
	 # see also init_is_upstart in /lib/lsb/init-functions (which isn't available in Ubuntu 12.04, or we'd use it directly)
	 if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | grep -q upstart; then        
                log_failure_msg "$DOCKER_DESC is managed via upstart, try using service $BASE $1"
                exit 1
         fi
}

fail_unless_root() {
	if [ "$(id -u)" != '0' ]; then
		log_failure_msg "$DOCKER_DESC must be run as root"
		exit 1
	fi
}

cgroupfs_mount() {
	# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
	if grep -v '^#' /etc/fstab | grep -q cgroup \
		|| [ ! -e /proc/cgroups ] \
		|| [ ! -d /sys/fs/cgroup ]; then
		return
	fi
	if ! mountpoint -q /sys/fs/cgroup; then
		mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
	fi
	(
		cd /sys/fs/cgroup
		for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
			mkdir -p $sys
			if ! mountpoint -q $sys; then
				if ! mount -n -t cgroup -o $sys cgroup $sys; then
					rmdir $sys || true
				fi
			fi
		done
	)
}

case "$1" in
	start)
		check_init
		
		fail_unless_root

		cgroupfs_mount

		touch "$DOCKER_LOGFILE"
		chgrp docker "$DOCKER_LOGFILE"

		ulimit -n 1048576
		if [ "$BASH" ]; then
			ulimit -u 1048576
		else
			ulimit -p 1048576
		fi

		log_begin_msg "Starting $DOCKER_DESC: $BASE"
		start-stop-daemon --start --background \
			--no-close \
			--exec "$DOCKER" \
			--pidfile "$DOCKER_SSD_PIDFILE" \
			--make-pidfile \
			-- \
				daemon -p "$DOCKER_PIDFILE" \
				$DOCKER_OPTS \
					>> "$DOCKER_LOGFILE" 2>&1
		log_end_msg $?
		;;

	stop)
		check_init
		fail_unless_root
		log_begin_msg "Stopping $DOCKER_DESC: $BASE"
		start-stop-daemon --stop --pidfile "$DOCKER_SSD_PIDFILE" --retry 10
		log_end_msg $?
		;;

	restart)
		check_init
		fail_unless_root
		docker_pid=`cat "$DOCKER_SSD_PIDFILE" 2>/dev/null`
		[ -n "$docker_pid" ] \
			&& ps -p $docker_pid > /dev/null 2>&1 \
			&& $0 stop
		$0 start
		;;

	force-reload)
		check_init
		fail_unless_root
		$0 restart
		;;

	status)
		check_init
		status_of_proc -p "$DOCKER_SSD_PIDFILE" "$DOCKER" "$DOCKER_DESC"
		;;

	*)
		echo "Usage: service docker {start|stop|restart|status}"
		exit 1
		;;
esac
Lorsque je lance docker daemon j'ai :
INFO[0000] API listen on /var/run/docker.sock           
WARN[0000] Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section. 
INFO[0000] [graphdriver] using prior storage driver "devicemapper" 
WARN[0000] Running modprobe nf_nat failed with message: `modprobe: ERROR: ../libkmod/libkmod.c:578 kmod_search_moddep() could not open moddep file '/lib/modules/3.14.27-xxxx-grs-ipv6-64/modules.dep.bin'`, error: exit status 1 
INFO[0000] Firewalld running: false                     
INFO[0000] Default bridge (docker0) is assigned with an IP address 172.17.0.1/16. Daemon option --bip can be used to set a preferred IP address 
WARN[0000] Your kernel does not support kernel memory limit. 
WARN[0000] Your kernel does not support cgroup cfs period 
WARN[0000] Your kernel does not support cgroup cfs quotas 
INFO[0000] Loading containers: start.                   

INFO[0000] Loading containers: done.                    
INFO[0000] Daemon has completed initialization          
INFO[0000] Docker daemon                                 commit=a34a1d5 execdriver=native-0.2 graphdriver=devicemapper version=1.9.1
14 jours plus tard
Pour information j'ai mis à jour vers Debian 8 Jessie et j'ai changé de Kernel et tout est bon now.
Encore merci pour votre aide...
<3
16 jours plus tard
Bonjour à tous

J'ai besoin de vos lumières pour comprendre et résoudre un problème avec docker.
Je souhaite créer un doker "DATA" dans lequel je vais monter plusieurs volumes pour ensuite les partager entre mes conteneurs grâce à l'option "--volumes-from"

Lorsque je lance docker build -t xxxx . j'ai une erreur qui apparait 2 fois sur 3 ...
root@XXXX:/var/lib/docker/dockerfiles/films# docker build -t nerwysh_films .
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM scratch
 --->
Step 2 : MAINTAINER Nerwysh <xxxxx@gmail.com>
 ---> Using cache
 ---> 307bc5cb1543
Step 3 : VOLUME /nerwysh_films
 ---> Running in 388bfdd915d0
devmapper: Error mounting '/dev/mapper/docker-9:2-426768-ed82220372b777a4fc351e8953f6932aec319c17b0bf48b5aaa45093b7f1be66' on '/var/lib/docker/devicemapper/mnt/ed82220372b777a4fc351e8953f6932aec319c17b0bf48b5aaa45093b7f1be66': no such file or directory
Voici le Dockerfile correspondant.
FROM scratch
MAINTAINER Nerwysh <xxxxx@gmail.com>

VOLUME /nerwysh_films
ENTRYPOINT ["/no/such/file"]
Je n'arrive pas à solutionner le problème avez-vous des idées ?
pas sur que ca fonctionne sachant que tu as pas de FS dans ton conteneur
est c'est le même fs sur les autres serveur ?
J'ai tester et cela fonctionne.
Sur ton autre serveur, quelle driver fs utilise tu ? J'ai l'impression que c'est device-mapper qui fou la merder
Salut,

Désolé pour le temps de réponse voici les informations de docker -info :
J'ai peut être une spécificité... lien symbolique /var/lib/docker/ -> /home/docker/docker_data/

Containers: 23
 Running: 14
 Paused: 0
 Stopped: 9
Images: 11
Server Version: 1.10.1
Storage Driver: devicemapper
 Pool Name: docker-9:3-46751758-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 5.78 GB
 Data Space Total: 107.4 GB
 Data Space Available: 101.6 GB
 Metadata Space Used: 11.13 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.136 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /home/docker/docker_data/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` o
r use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
 Metadata loop file: /home/docker/docker_data/devicemapper/devicemapper/metadata
 Library Version: 1.02.90 (2014-09-01)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 3.14.32-xxxx-grs-ipv6-64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.32 GiB
Name: XXXXX
ID: Q2MP:2RIK:UYN4:T5TL:SZPK:GT3U:46DK:N6KO:E5IK:VHZ6:34QZ:DMBM
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

Pour l'instant je contourne le problème et créant des conteneurs VOLUME comme ça :
docker create --name nerwysh_dessins_animes -v /home/docker/partage/dessins_animes:/nerwysh_dessins_animes  busybox
25 jours plus tard
Je souhaite installer Docker sur mon rpi (b+) qui tourne sous raspbian, comment je dois procéder ?
Gravefield wrote:Je souhaite installer Docker sur mon rpi (b+) qui tourne sous raspbian, comment je dois procéder ?
L'utilisation sera limité, mais c'est possible.

Deux solutions, sois tu compile docker sur un raspbian, mais risque d'avoir des problèmes de compatibilités, ou alors il existe peux être des dépots pour raspbian ou peut être archlinux.
Ou alors utiliser une distribution faites pour ceci, comme HypriotOS.
Cela semble compliqué (pour moi) d’installer docker sur Raspbian.

J'ai trouvé des exemples pour des rpi's basé sur Arch Linux. Ou alors carrément flasher la carte sd pour installer un OS particulier.

- https://resin.io/blog/docker-on-raspberry-pi/
- http://blog.hypriot.com/downloads/

J'ai essayé cette méthode (voir le point numéro 4) : https://github.com/umiddelb/armhf/wiki/Get-Docker-up-and-running-on-the-RaspberryPi-%28ARMv6%29-in-four-steps-%28Wheezy%29

Mais j'ai un soucis avec le "Docker Daemon".

Installation du paquet :
# sudo dpkg -i docker-hypriot_1.10.3-1_armhf.deb
Sélection du paquet docker-hypriot précédemment désélectionné.
(Lecture de la base de données... 168870 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de docker-hypriot_1.10.3-1_armhf.deb ...
Dépaquetage de docker-hypriot (1.10.3-1) ...
Paramétrage de docker-hypriot (1.10.3-1) ...
Traitement des actions différées (« triggers ») pour systemd (215-17+deb8u2) ...
# sudo systemctl enable docker.service
Synchronizing state for docker.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d docker defaults
Executing /usr/sbin/update-rc.d docker enable
# sudo docker info

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.10.3
Storage Driver: overlay
 Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
 Volume: local
 Network: host bridge null
Kernel Version: 4.1.7+
Operating System: Raspbian GNU/Linux 8 (jessie)
OSType: linux
Architecture: armv6l
CPUs: 1
Total Memory: 482.2 MiB
Name: *****
ID: A3PB:R56C:D5JU:BG3S:A35T:XQB3:M7RO:UKRQ:JACY:QRX4:P7GN:FMT5
Debug mode (server): true
 File Descriptors: 11
 Goroutines: 20
 System Time: 2016-03-14T11:27:20.085560081+01:00
 EventsListeners: 0
 Init SHA1: 0db326fc09273474242804e87e11e1d9930fb95b
 Init Path: /usr/lib/docker/dockerinit
 Docker Root Dir: /var/lib/docker
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

# docker version
Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.4.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 22:23:48 2016
 OS/Arch:      linux/arm
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Je suis un peu perdu. Docker est installé ou pas? Il ne se lance pas? Qu'est-ce qui ce passe?
Regarde au niveau des fichiers de conf systemd :
/lib/systemd/system/docker.service
et 
/lib/systemd/system/docker.sock
Regarde également du coté du fichier /etc/default/docker.

Je pense que le daemon écoute sur un port, mais le client cherche a ce connecté au socket.
J'ai regardé les fichiers, par contre je n'ai pas trouvé de docker.sock mais j'ai un docker.socket, j'imagine que c'est le même fichier?

Alors voici "/lib/systemd/system/docker.service" :
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

[Service]
Type=notify
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
EnvironmentFile=-/etc/default/docker
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

/lib/systemd/system/docker.socket
[Unit]
Description=Docker Socket for the API
PartOf=docker.service

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

/etc/default/docker
# Docker Upstart and SysVinit configuration file

#
# THIS FILE DOES NOT APPLY TO SYSTEMD
#
#   Please see the documentation for "systemd drop-ins":
#   https://docs.docker.com/engine/articles/systemd/
#

# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
DOCKER_OPTS="--storage-driver=overlay -D"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"


Vous arrivez à dire d'où vient le problème?
Merci pour l'aide en tout cas.