Envoi d'un fichier de conteneur Docker sur l'hôte avec nc: Pourquoi héberger nc Ferme la connexion trop tôt?
Le script de téléchargement et de montage suivant BASH
(
https://github.com/mpv-player/mpv-build
) Dans le conteneur Docker et envoie un fichier à héberger avec netcat (Hôte écoute avec netcat):
Donc, le script:
Lancement netcat (
) Sur l'hôte écouter les composés en arrière-plan
Runs Conteneur Docker, dans lequel nous clonant le référentiel mpv, Bâtiment mpv, Utilisant
Pour vous connecter à une prise d'écoute de l'hôte et envoyez le fichier binaire résultant à l'hôte
Pour une raison quelconque, le fichier résultant diminue de la quantité à la réception du côté de l'hôte. Soit ça 0 octets ou plusieurs 1024 octets. Le début semble intact, fichier exécutable x86_64 ELF.
Voici une capture d'emballage, où le conteneur Docker envoie une partie du fichier binaire. mpv sur l'hôte, mais où écoute
(sur l'hôte) Ferme prématurément la connexion (Envoie un colis avec l'ensemble de drapeaux FIN, dans quelques millisecondes après avoir établi la connexion):
Ici a été transféré 49152 Octet (C'est toujours plus de peinture 1024).
Erreurs Transmission répétée TCP Il n'ya pas toujours de résultat. J'ai fait une autre saisie sans erreurs, mais il n'a toujours été envoyé qu'une petite partie (24576) Du commun 21818582 octets obtenus à la suite d'un fichier binaire mpv.
Je ne sais pas ce qui se passe ici, pourquoi
Sur le côté d'écoute / Forfait d'envoi d'hôte FIN TCP Peu de temps après avoir ouvert la connexion?
mpv
(
https://github.com/mpv-player/mpv-build
) Dans le conteneur Docker et envoie un fichier à héberger avec netcat (Hôte écoute avec netcat):
HOSTIP="192.168.1.100"
PORT="62514"
nc -v -l $PORT > mpv &
sleep 1
sudo docker run ubuntu:14.04 /bin/bash -c "\
sed -i -e 's/# deb/deb/g' /etc/apt/sources.list; \
cat /etc/apt/sources.list; \
apt-get update; \
apt-get install --yes --force-yes git python-minimal; \
git clone [url=https://github.com/mpv-player/mpv-build.git;]https://github.com/mpv-player/mpv-build.git;[/url] \
cd mpv-build/; \
./update; \
apt-get install --yes --force-yes devscripts equivs; \
rm -f mpv-build-deps_*_*.deb; \
mk-build-deps -i -t \"apt-get --yes --force-yes --no-install-recommends\"; \
./build -j\$(nproc); \
cat mpv/build/mpv | nc $HOSTIP $PORT; \
echo Done"
#close any nc process that might be left running
nc $HOSTIP $PORT
Donc, le script:
Lancement netcat (
nc
) Sur l'hôte écouter les composés en arrière-plan
Runs Conteneur Docker, dans lequel nous clonant le référentiel mpv, Bâtiment mpv, Utilisant
nc
Pour vous connecter à une prise d'écoute de l'hôte et envoyez le fichier binaire résultant à l'hôte
Pour une raison quelconque, le fichier résultant diminue de la quantité à la réception du côté de l'hôte. Soit ça 0 octets ou plusieurs 1024 octets. Le début semble intact, fichier exécutable x86_64 ELF.
Voici une capture d'emballage, où le conteneur Docker envoie une partie du fichier binaire. mpv sur l'hôte, mais où écoute
nc
(sur l'hôte) Ferme prématurément la connexion (Envoie un colis avec l'ensemble de drapeaux FIN, dans quelques millisecondes après avoir établi la connexion):
Ici a été transféré 49152 Octet (C'est toujours plus de peinture 1024).
Erreurs Transmission répétée TCP Il n'ya pas toujours de résultat. J'ai fait une autre saisie sans erreurs, mais il n'a toujours été envoyé qu'une petite partie (24576) Du commun 21818582 octets obtenus à la suite d'un fichier binaire mpv.
Je ne sais pas ce qui se passe ici, pourquoi
nc
Sur le côté d'écoute / Forfait d'envoi d'hôte FIN TCP Peu de temps après avoir ouvert la connexion?
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
3 réponses
Emilie
Confirmation de:
Pour plusieurs fichiers ajoutez tar:
Alice
Confirmation de:
Équipe, le script peut être réécrit pour:
netcat Maintenant, il est utilisé uniquement comme une sorte de mécanisme de messagerie afin que le conteneur signale l'hôte lorsqu'il a terminé l'assemblage. (Afin que l'hôte puisse initier la copie), et pour l'hôte de signaler le conteneur qu'il a terminé de copier le fichier ( Faire le conteneur).
Dominique
Confirmation de:
https://docs.docker.com/engine ... e/cp/
pour ça.
Vous pouvez utiliser
ne pas contacter netcat.
</containerid>