9
votes

Liaison Docker SQL: une tentative a été faite pour accéder à une socket d'une manière interdite par ses autorisations d'accès

Message d'erreur lors de la création du conteneur dans Docker pour serveur SQL (avec droits d'administrateur):

"- Réponse d'erreur du démon: le pilote n'a pas réussi à programmer la connectivité externe sur le point de terminaison SQL19b (cc372bb961fb8178c2461d26bf16c4232a62e01c5f48b8fcec273370506cc095): Erreur lors du démarrage du proxy userland: écoute tcp 0.0.0.0:1433: liaison: une tentative d'accès à un socket interdit a été effectuée autorisations d'accès. "

extraits du fichier journal:

    [21:39:17.692][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy >> HEAD /_ping\n"
[21:39:17.696][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy << HEAD /_ping (3.9929ms)\n"
[21:39:17.699][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:17.742][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy >> DELETE /v1.40/containers/22810276e261\n"
[21:39:17.758][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy << DELETE /v1.40/containers/22810276e261 (16.129ms)\n"
[21:39:17.759][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:27.866][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="proxy >> HEAD /_ping\n"
[21:39:27.869][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="proxy << HEAD /_ping (1.6595ms)\n"
[21:39:27.870][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:27.894][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="proxy >> POST /v1.40/containers/create?name=SQLLinuxLocalPersist\n"
[21:39:27.908][APIRequestLogger  ][Info   ] [db460e2b-7d77-4756-be19-665715a9a182] POST http://unix/usage
[21:39:27.909][APIRequestLogger  ][Info   ] [db460e2b-7d77-4756-be19-665715a9a182] POST http://unix/usage -> 200 OK took 0ms
[21:39:27.909][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="Rewrote mount C:\\Docker\\SQL:/sql (volumeDriver=) to /host_mnt/c/Docker/SQL:/sql"
[21:39:28.049][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy << POST /v1.40/containers/create?name=SQLLinuxLocalPersist (154.5485ms)\n"
[21:39:28.050][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy >> POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/wait?condition=next-exit\n"
[21:39:28.052][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:28.080][APIRequestLogger  ][Info   ] [a9a496c9-767a-4bd2-917c-f3f1391609dc] POST http://unix/usage
[21:39:28.082][APIRequestLogger  ][Info   ] [a9a496c9-767a-4bd2-917c-f3f1391609dc] POST http://unix/usage -> 200 OK took 0ms
[21:39:28.060][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy >> POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/start\n"
[21:39:28.088][APIRequestLogger  ][Info   ] [89bf69bf-5084-4d4b-a887-c7acb99bf131] POST http://unix/usage
[21:39:28.088][APIRequestLogger  ][Info   ] [6ca0e28f-bba3-4f66-afc5-43f6d486c8a2] POST http://unix/usage
[21:39:28.089][APIRequestLogger  ][Info   ] [89bf69bf-5084-4d4b-a887-c7acb99bf131] POST http://unix/usage -> 200 OK took 0ms
[21:39:28.089][APIRequestLogger  ][Info   ] [6ca0e28f-bba3-4f66-afc5-43f6d486c8a2] POST http://unix/usage -> 200 OK took 0ms
[21:39:28.067][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="mount point type:bind"
[21:39:28.068][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="mount point:/host_mnt/c/Docker/SQL"
[21:39:28.205][Moby              ][Info   ] [ 2254.975742] docker0: port 1(veth69918f7) entered blocking state
[21:39:28.250][Moby              ][Info   ] [ 2255.087127] docker0: port 1(veth69918f7) entered disabled state
[21:39:28.295][Moby              ][Info   ] [ 2255.132041] device veth69918f7 entered promiscuous mode
[21:39:28.354][Moby              ][Info   ] [ 2255.176944] IPv6: ADDRCONF(NETDEV_UP): veth69918f7: link is not ready
[21:39:28.439][GoBackendProcess  ][Info   ] Adding tcp forward from 0.0.0.0:1433 to 172.17.0.2:1433
[21:39:28.560][Moby              ][Info   ] [ 2255.385920] docker0: port 1(veth69918f7) entered disabled state
[21:39:28.616][Moby              ][Info   ] [ 2255.442735] device veth69918f7 left promiscuous mode
[21:39:28.667][Moby              ][Info   ] [ 2255.497549] docker0: port 1(veth69918f7) entered disabled state
[21:39:28.826][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy << POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/start (767.0192ms)\n"
[21:39:28.829][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:28.834][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="Cancel connection..."
[21:39:28.836][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy << POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/wait?condition=next-exit (786.0411ms)\n"

Cela conduit à un conteneur créé, mais sans le port alloué. Par conséquent, ne peut pas démarrer le serveur SQL.

Edit1: Le port 1433 ne semble pas être utilisé (au moins il n'est pas listé sous "netstat -abn")


0 commentaires

3 Réponses :


1
votes

J'ai eu le même problème. J'ai corrigé cela en suivant les étapes:

  1. Téléchargez et installez "Kitematic".
  2. Définissez l' published IP:PORT sur localhost:111 (le port 1433 ne fonctionne pas pour une raison inconnue).
  3. Démarrez l'image sqlserver.

0 commentaires

23
votes

J'ai rencontré le même problème et je ne voulais pas changer le port par défaut de MSSQL (1433)

Voici ce que j'ai fait pour résoudre ce problème.

Assurez-vous que votre port n'est pas utilisé, accédez au moniteur de ressources pour valider cela. Vérifiez maintenant si le port est réservé. Ouvrez votre invite de commande et entrez ceci

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Les ports listés ici sont gérés par hyper-v et la seule façon de supprimer le port 1433 ici est de désactiver hyper-v, de réserver le port 1433 pour qu'Hyper-v ne le réserve pas.

Désactiver hyper-v

netsh int ipv4 add excludedportrange protocol=tcp startport=1433 numberofports=1

Réserver le port 1433

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

Réactiver hyper-v

netsh int ipv4 show excludedportrange protocol=tcp

Démarrez docker et exécutez votre conteneur


0 commentaires

1
votes

Vérifiez si votre port est dans l'une des plages d'exclusion:

netsh int ipv4 show excludedportrange protocol=tcp

S'il est exclu, vous souffrirez probablement d'une mise à jour de Windows défectueuse qui a modifié la plage de démarrage du port dynamique.

Vérifiez la plage de ports de démarrage dynamique avec netsh int ipv4 show dynamicport tcp et netsh int ipv4 show dynamicport tcp avec netsh int ipv4 set dynamic tcp start=49152 num=16384 et après le redémarrage, les plages de ports d'exclusion devraient avoir changé.

Source: https://github.com/docker/for-win/issues/3171#issuecomment-554587817


0 commentaires