Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/02/2018, à 15:30

Hizoka

Création d'une image docker

Cette discussion devrait nous aider à en créer facilement. A suivre smile

Hors ligne

#2 Le 15/02/2018, à 16:08

k3c

Re : Création d'une image docker

Pour créer une image docker, il faut partir d'une image de référence.

Cela peut être Ubuntu, Debian, Alpine Linux (Linux réduit), scratch (image vide)...
Cela correspond à la ligne
FROM
du Dockerfile

On peut être avoir son PC sous Ubuntu et construire une image Docker pour Debian ou un autre OS

Ensuite, pour construire une image il y a une "recette de cuisine" : le Dockerfile

https://docs.docker.com/engine/reference/builder/

On peut trouver des examples de Dockerfiles sur le hub docker

https://hub.docker.com/

par exemple un dockerfile pour un serveur web nginx
https://hub.docker.com/_/nginx/

suivant les versions
https://github.com/nginxinc/docker-ngin … Dockerfile

Dernière modification par k3c (Le 16/02/2018, à 07:12)


Archlinux sur Xiaomi Air 13

Hors ligne

#3 Le 15/02/2018, à 17:20

k3c

Re : Création d'une image docker

Pour créer ton image docker

extrait de ta page

Installation :
Via mon ppa :

sudo add-apt-repository ppa:hizo/mkv-extractor-gui
sudo apt-get update

Version QT4:
Dépendances : mkvtoolnix, python3, python3-pyqt4

sudo apt-get install mkv-extractor-qt

donc faire dans le Dockerfile ce qui est indiqué plus haut

Sinon on peut aussi reconstruire mkv-extractor à partir des sources

2 exemples de Dockerfile construisant un exécutable à partir des sources

https://hub.docker.com/r/k3ck3c/nethogs/

https://hub.docker.com/r/k3ck3c/simh_bitnami/


Archlinux sur Xiaomi Air 13

Hors ligne

#4 Le 15/02/2018, à 21:02

Hizoka

Re : Création d'une image docker

J'ai du mal à piger le truc...

Ça franchement pas l'air simple...

Hors ligne

#5 Le 15/02/2018, à 22:35

k3c

Re : Création d'une image docker

tu crées un répertoire à part, tu y mets un Dockerfile correct, et tu fais un truc du genre

docker build -t $USER/monimage-v1

puis tu fais

docker images

et tu regardes ce que ça affiche


Archlinux sur Xiaomi Air 13

Hors ligne

#6 Le 15/02/2018, à 23:57

k3c

Re : Création d'une image docker

Un container docker c'est un process isolé, avec un peu d'espace disque et une carte réseau.
Il lance un serveur web nginx ou apache, une base de données, Captvty, un Wordpress...

Par exemple Percona propose des bases MariaDb optimisées, en tant qu'images docker.


Archlinux sur Xiaomi Air 13

Hors ligne

#7 Le 17/02/2018, à 14:43

k3c

Re : Création d'une image docker

J'ai créé une image (à améliorer)

https://hub.docker.com/r/k3ck3c/mkvextractor/

Le Dockerfile si vous voulez le faire vous-même

FROM ubuntu
RUN apt-get update &&\
BUILD_PACKAGES='software-properties-common' &&\
apt-get install -y --no-install-recommends $BUILD_PACKAGES &&\
AUTO_ADDED_PACKAGES=`apt-mark showauto` &&\
add-apt-repository ppa:hizo/mkv-extractor-gui && \
apt-get update && \
apt-get install -y mkvtoolnix python3 python3-pyqt4 mkv-extractor-qt5 &&\
apt-get remove --purge -y $BUILD_PACKAGES &&\
rm -rf /var/lib/apt/lists/* &&\
useradd -d /home/gg -m -s /bin/bash gg &&\
echo gg:gg | chpasswd 
USER gg
CMD ["mkv-extractor-qt5"]

Archlinux sur Xiaomi Air 13

Hors ligne

#8 Le 17/02/2018, à 16:47

Hizoka

Re : Création d'une image docker

J'ai peut être pas tout compris mais bon :

docker pull k3ck3c/mkvextractor
Using default tag: latest
Warning: failed to get default registry endpoint from daemon (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.26/info: dial unix /var/run/docker.sock: connect: permission denied). Using system default: https://index.docker.io/v1/
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/create?fromImage=k3ck3c%2Fmkvextractor&tag=latest: dial unix /var/run/docker.sock: connect: permission denied

Hors ligne

#9 Le 17/02/2018, à 17:34

k3c

Re : Création d'une image docker

soit tu fais

sudo docker pull ...

mais plutôt

sudo usermod -a -G docker $USER

suivi de logout et login

Dernière modification par k3c (Le 20/02/2018, à 14:20)


Archlinux sur Xiaomi Air 13

Hors ligne

#10 Le 17/02/2018, à 19:01

Hizoka

Re : Création d'une image docker

Je comprends franchement as le fonctionnement du bordel...
c'est franchement pas user friendly ce truc...

j'ai donc télécharger pour plus de  200mo de donnée via docker pull k3ck3c/mkvextractor et ... so what ?!
bon essayons :

docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix gg/mkvextractorv2                                                                                                                                                                                     
Unable to find image 'gg/mkvextractorv2:latest' locally                                                                                                                                                                                                                       
docker: Error response from daemon: repository gg/mkvextractorv2 not found: does not exist or no pull access.                                                                                                                                                                 
See 'docker run --help'.

docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix k3ck3c/mkvextractordocker
Unable to find image 'k3ck3c/mkvextractordocker:latest' locally
docker: Error response from daemon: repository k3ck3c/mkvextractordocker not found: does not exist or no pull access.
See 'docker run --help'

...

Hors ligne

#11 Le 17/02/2018, à 19:22

k3c

Re : Création d'une image docker

c'est ma faute, un copier-collé malheureux, j'ai mis à jour la page

docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix k3ck3c/mkvextractorv2

quand tu fais docker run

1) ça regarde si

docker images

trouve l'image sur ton PC
2) sinon ça va la chercher sur
hub.docker.com

Par contre, il va falloir ajouter qu l'on partage la carte vidéo avec l'hôte ou des choses du genre je pense, j'ai au démarrage

gg@asus:~$ docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix gg/mkvextractorv2  
process 1: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/etc/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
libGL error: pci id for fd 9: 8086:1916, driver (null)
libGL error: No driver found
libGL error: failed to load driver: (null)
libGL error: failed to open drm device: No such file or directory
libGL error: failed to load driver: i965
Traceback (most recent call last):
  File "/usr/bin/mkv-extractor-qt5", line 1766, in WorkReply
    line = line.split('|')[1].strip() # Recupere la 2eme colonne, la langue en 3 lettres
IndexError: list index out of range

mais ça me lance bien ton soft

Dernière modification par k3c (Le 17/02/2018, à 19:24)


Archlinux sur Xiaomi Air 13

Hors ligne

#12 Le 17/02/2018, à 19:44

Hizoka

Re : Création d'une image docker

Bah, c'est ce que j'ai fait déjà, mais il ne se passe rien :

docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix k3ck3c/mkvextractorv2
Unable to find image 'k3ck3c/mkvextractorv2:latest' locally
docker: Error response from daemon: repository k3ck3c/mkvextractorv2 not found: does not exist or no pull access.
See 'docker run --help'.

Mais je pige pas le truc, le logiciel est pas sur ton pc mais sur un serveur ?

Hors ligne

#13 Le 17/02/2018, à 20:27

k3c

Re : Création d'une image docker

mea culpa, je fais que des âneries

J'ai mis à jour l'image, tu peux re-essayer, mais avec k3ck3c/mkvextractor?



docker run -it -e DISPLAY=$DISPLAY -v /home:/home -v /tmp/.X11-unix:/tmp/.X11-unix k3ck3c/mkvextractor

Edit si on veut accéder aux fichiers dans son compte, il faut le

-v /home:/home

sinon on ne "verra" aucun fichier

Dernière modification par k3c (Le 18/02/2018, à 12:18)


Archlinux sur Xiaomi Air 13

Hors ligne

#14 Le 17/02/2018, à 20:31

Hizoka

Re : Création d'une image docker

Ok, j'arrive à me connecter mais j'ai une erreur au lancement.

Donc si je pige on se connecte à un serveur qui a le logiciel.
Mais sans connexion ça fonctionne quand même ?

C'est quelque chose que je ne connaissais pas du tout. Mais le coté pratique m’échappe un peu...
Je trouve plus intéressant d'avoir un fichier appimage sur son pc, sa clé usb ou qu'importe et de pouvoir le lancer via un simple clic dessus.

Hors ligne

#15 Le 17/02/2018, à 20:35

k3c

Re : Création d'une image docker

Hizoka a dit

>>>Donc si je pige on se connecte à un serveur qui a le logiciel.
oui, et on le télécharge sur sa machine
fais

docker images

>>>Mais sans connexion ça fonctionne quand même ?

oui vu que l'image est sur ton PC

Tu aurais pu faire le

cd une_directory_a_part_avec_le_Dockerfile
docker build -t $USER/mkv .

puis

docker run ... $USER/mkv

Edit:  lis https://blog.jessfraz.com/post/docker-c … e-desktop/

Dernière modification par k3c (Le 17/02/2018, à 20:37)


Archlinux sur Xiaomi Air 13

Hors ligne

#16 Le 18/02/2018, à 11:41

k3c

Re : Création d'une image docker

J'aime bien savoir quel process consomme le plus de bande passante, j'utilise nethogs

si tu as une carte wlan0, fais

docker run -it --net=host --pid=host --rm k3ck3c/nethogs

si tu veux monitorer ta carte eth0, fais

docker run -it --net=host --pid=host --rm k3ck3c/nethogs eth0

ou si tu veux monitorer ta carte wlp2s0, fais

docker run -it --net=host --pid=host --rm k3ck3c/nethogs wlp2s0

Tu as le Dockerfile à

https://hub.docker.com/r/k3ck3c/nethogs/

si tu veux reconstruire l'image docker toi-même


Archlinux sur Xiaomi Air 13

Hors ligne

#17 Le 18/02/2018, à 12:21

k3c

Re : Création d'une image docker

Un autre exemple, le Dockerfile de k3ck3c/captvty

FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
	# activate i386 arch for Wine and install stuff we need
RUN dpkg --add-architecture i386 && \
	apt-get update && \
        BUILD_PACKAGES='wget software-properties-common unzip apt-transport-https openssh-server xauth cabextract winbind squashfs-tools pulseaudio sudo x11-apps xfce4 c
ups joe xfce4-terminal xvfb socat x11vnc firefox' &&\
	apt-get -qy upgrade && apt-get -qy install $BUILD_PACKAGES && \
        AUTO_ADDED_PACKAGES=`apt-mark showauto` && \	
	# install latest Wine
	wget -qO- https://dl.winehq.org/wine-builds/Release.key | apt-key add - && \
	apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/ && \
	apt-get update && apt-get -qy install --install-recommends winehq-devel && \
	# create our user for Wine
useradd -d /home/gg -m -s /bin/bash gg && \
echo gg:gg | chpasswd && \ 
	# winetricks
	wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O /tmp/winetricks && \
	chmod +x /tmp/winetricks
        USER gg 
ENV WINEDEBUG=-all WINEPREFIX=/home/gg/.wine WINEARCH=win32
RUN winecfg && \
xvfb-run -a /tmp/winetricks -q vcrun2010 dotnet40 gdiplus comctl32 ie8 
        USER root	
	RUN apt-get autoremove -y --purge software-properties-common && \
	apt-get autoremove -y --purge && \
	apt-get remove --purge -y $BUILD_PACKAGES $AUTO_ADDED_PACKAGES && \
	apt-get clean -y && \
	rm -rf /home/wine/.cache && \
	rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
USER gg
RUN wget -q -O- http://captvty.fr/ | egrep -o '\/\/.+?\.zip' | sed 's/\/\//http:\/\//' | xargs wget -O /tmp/Captvty.zip && \
ls -alrt /tmp/Cap*zip && unzip -d  ~/Captvty /tmp/Captvty.zip && rm /tmp/Captvty.zip
CMD wine /home/gg/Captvty/Captvty.exe

Archlinux sur Xiaomi Air 13

Hors ligne

#18 Le 18/02/2018, à 12:32

k3c

Re : Création d'une image docker

Le Dockerfile de Captvty V3

http://v3.captvty.fr

FROM ubuntu:16.04

# inspired by webanck/docker-wine-steam

# preparations
ENV DEBIAN_FRONTEND noninteractive
ENV LANG fr_FR.UTF-8
ENV LANGUAGE fr_FR:en
ENV LC_ALL fr_FR.UTF-8
# activate i386 arch for Wine and install stuff we need
RUN locale-gen fr_FR.UTF-8 && \
dpkg --add-architecture i386 && \
	apt-get update && \
        BUILD_PACKAGES='wget software-properties-common unzip apt-transport-https openssh-server xauth cabextract winbind squashfs-tools pulseaudio x11-apps xfce4 cups joe xfce4-terminal xvfb socat x11vnc' &&\
	apt-get -qy upgrade && apt-get -qy install $BUILD_PACKAGES && \
        AUTO_ADDED_PACKAGES=`apt-mark showauto` && \	
	# install latest Wine
	wget -qO- https://dl.winehq.org/wine-builds/Release.key | apt-key add - && \
	apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/ && \
	apt-get update && apt-get -qy install --no-install-recommends winehq-devel && \

	# make sshd work and enable X11 forwarding
	# create our user for Wine
useradd -d /home/gg -m -s /bin/bash gg && \
echo gg:gg | chpasswd && \ 
	# winetricks
	wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O /tmp/winetricks && \
	chmod +x /tmp/winetricks && \
echo $AUTO_ADDED_PACKAGES && \
sleep 11
        USER gg 
ENV WINEDEBUG=-all WINEPREFIX=/home/gg/.wine WINEARCH=win32
RUN winecfg && \
xvfb-run -a /tmp/winetricks -q --unattended dotnet45 corefonts comctl32 gdiplus vcrun2010 ie8
        USER root	
	# cleaning up
	RUN apt-get autoremove -y --purge software-properties-common && \
	apt-get autoremove -y --purge && \
	apt-get remove --purge -y software-properties-common apt-transport-https openssh-server xauth cabextract winbind squashfs-tools pulseaudio x11-apps xfce4 cups joe xfce4-terminal xvfb socat x11vnc && \
	apt-get clean -y && \
	rm -rf /home/wine/.cache && \
	rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /tmp/inetricks
USER gg
RUN wget -q -O- http://v3.captvty.fr/ | egrep -o '\/\/.+?\.zip' | sed 's/\/\//http:\/\//' | xargs wget -O /tmp/v3Captvty.zip && \
ls -alrt /tmp/v3Cap*zip && unzip -d  ~/Captvtyv3 /tmp/v3Captvty.zip && rm /tmp/v3Captvty.zip 
USER root
RUN apt-get remove --purge -y wget &&\
        apt-get clean -y && \
	apt-get autoremove -y && \
	rm -rf /home/wine/.cache && \
        rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
USER gg
CMD wine /home/gg/Captvtyv3/Captvty.exe

Dernière modification par k3c (Le 18/02/2018, à 12:35)


Archlinux sur Xiaomi Air 13

Hors ligne

#19 Le 18/02/2018, à 18:45

Hizoka

Re : Création d'une image docker

Le principe est pas trop mal mais ce n'est pas franchement utilisable...

il m'a fallu télécharger plus de 600mo pour un soft qui n'est pas bien lourds même s'il a des dépendances.

De plus il n'est pas téléchargeable via un simple clic, ça demande des utilisations de commandes, ce qui moi ne me dérange pas mais n'est pas userfriendly.

En tout cas, merci pour le temps passer à m'expliquer ce principe smile

Si tu le souhaites, je te laisse gérer ça tongue
je peux proposer le lien dans le 1er message de mkv extractor qt5

Hors ligne

#20 Le 18/02/2018, à 19:38

k3c

Re : Création d'une image docker

L'image n'est pas optimisée, j'ai juste créé brut de fonderie.

Je vais voir à quelle taille je peux descendre.


Archlinux sur Xiaomi Air 13

Hors ligne

#21 Le 19/02/2018, à 15:11

k3c

Re : Création d'une image docker

>>>De plus il n'est pas téléchargeable via un simple clic, ça demande des utilisations de commandes, ce qui moi ne me dérange pas mais n'est pas userfriendly.

le

docker pull xxx

n'est pas obligatoire, si tu fais

docker run ...

et que l'image n'est pas sur ta machine, docker va la chercher sur le hub, qui par défaut est sur
hub.docker.com

mais peut être sur ta machine

Sinon je voulais bien montrer les commandes, mais on peut faire plus simple avec

docker-compose
https://docs.docker.com/compose/

qui utilise un fichier yaml avec toute la définition

et on fait juste

docker-compose up

D'autre part, je voulais faire "pédagogique" et partir d'une grosse image docker pas optimisée pour montrer que l'on finissait par avoir une image très nettement plus petite, mais j'ai surtout réussi à te convaincre que docker c'est nul
:-(


Archlinux sur Xiaomi Air 13

Hors ligne

#22 Le 19/02/2018, à 20:10

Hizoka

Re : Création d'une image docker

Non je ne pense pas que c'est nul, mais je me dis que ce système n'est pas forcement très userfriendly.
Mais je ne fais que le découvrir...

Hors ligne

#23 Le 09/03/2018, à 17:47

k3c

Re : Création d'une image docker

Je vais ajouter une image docker basée sur Alpine Linux


Archlinux sur Xiaomi Air 13

Hors ligne