A Docker emulátorának használata a Windows

A következőkre vonatkozik: SQL API CASSANDRA API Gremlin API Table API Azure Cosmos db API a MongoDB

A tárolót egy Azure Cosmos DB Emulator Docker Windows futtathatja. A docker Docker Hub a docker pull parancsért, GitHub és további információkért tekintse meg Dockerfile a következőt: . Az emulátor jelenleg nem működik a Dockeren a Oracle Linux. Az emulátor Dockeren való futtatásához kövesse az alábbi Windows:

  1. Miután telepítette a Docker for Windows, váltson át Windows-tárolókra. Kattintson a jobb gombbal a Docker ikonra az eszköztáron, és válassza a Váltás Windows tárolókra lehetőséget.

  2. Ezután kérje le az emulátor rendszerképét a Docker Hubról. Ehhez futtassa a következő parancsot azon a felületen, amelyet használni szokott.

    docker pull mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator
    
  3. A rendszerkép futtatásához futtassa a következő parancsokat a parancssortól vagy a PowerShell-környezettől függően:

    
    md %LOCALAPPDATA%\CosmosDBEmulator\bind-mount
    
    docker run --name azure-cosmosdb-emulator --memory 2GB --mount "type=bind,source=%LOCALAPPDATA%\CosmosDBEmulator\bind-mount,destination=C:\CosmosDB.Emulator\bind-mount" --interactive --tty -p 8081:8081 -p 8900:8900 -p 8901:8901 -p 8902:8902 -p 10250:10250 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -p 10255:10255 -p 10256:10256 -p 10350:10350 mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator
    

    Windows, hogy a docker-alapú rendszerképek általában nem kompatibilisek a Windows operációs rendszer összes rendszerképének. Az alapértelmezett rendszerkép Azure Cosmos DB Emulator csak az Windows 10 és Windows Server 2016. Ha olyan lemezképre van szüksége, amely kompatibilis a Windows Server 2019-hez, futtassa helyette a következő parancsot:

    docker run --name azure-cosmosdb-emulator --memory 2GB --mount "type=bind,source=%hostDirectory%,destination=C:\CosmosDB.Emulator\bind-mount" --interactive --tty -p 8081:8081 -p 8900:8900 -p 8901:8901 -p 8902:8902 -p 10250:10250 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -p 10255:10255 -p 10256:10256 -p 10350:10350 mcr.microsoft.com/cosmosdb/winsrv2019/azure-cosmos-emulator:latest
    

    Megjegyzés

    A parancs végrehajtásakor, ha portütközési hibát lát (azaz ha a megadott port már használatban van), a portszámok megváltoztatásával át kell adni egy docker run egyéni portot. Például módosíthatja a "-p 8081:8081" paramétert a következőre: "-p 443:8081"

  4. Most használja az emulátor végpontját és elsődleges kulcsát a válaszból, és importálja a TLS-/SSL-tanúsítványt a gazdagépre. A TLS/SSL-tanúsítvány importáláshoz futtassa a következő lépéseket egy rendszergazdai parancssorból:

    cd  %LOCALAPPDATA%\CosmosDBEmulator\bind-mount
    powershell .\importcert.ps1
    
  5. Ha az emulátor elindulás után bezárja az interaktív rendszerhéjat, az le fogja állítani az emulátor tárolóját. Az adatkezelő újbóli megnyitásához nyissa meg a következő URL-címet a böngészőben. Az emulátor végpontja a fent látható válaszüzenetben van megadva.

    https://<emulator endpoint provided in response>/_explorer/index.html

Ha egy Linux Docker-tárolón futó .NET-ügyfélalkalmazással rendelkezik, és a Azure Cosmos DB Emulator-t egy gazdagépen futtatja, a következő szakaszban található utasításokat követve importálja a tanúsítványt a Linux Docker-tárolóba.

Emulátortanúsítványok újragenerálása

Amikor az emulátort Docker-tárolóban futtatja, az emulátorhoz társított tanúsítványokat a rendszer minden alkalommal újra létrehozza, amikor leállítja és újraindítja a megfelelő tárolót. Emiatt az egyes tárolók elindulás után újra kell importálni a tanúsítványokat. A korlátozást egy Docker Compose-fájl használatával egy adott IP-címhez és tároló-rendszerképhez kötheti.

Használhatja például a következő konfigurációt a Docker Compose-fájlban, és győződjön meg arról, hogy a követelménynek megfelelően formázza:

version: '2.4' # Do not upgrade to 3.x yet, unless you plan to use swarm/docker stack: https://github.com/docker/compose/issues/4513

networks:
  default:
    external: false
    ipam:
      driver: default
      config:
        - subnet: "172.16.238.0/24"

services:

  # First create a directory that will hold the emulator traces and certificate to be imported
  # set hostDirectory=C:\emulator\bind-mount
  # mkdir %hostDirectory%

  cosmosdb:
    container_name: "azurecosmosemulator"
    hostname: "azurecosmosemulator"
    image: 'mcr.microsoft.com/cosmosdb/windows/azure-cosmos-emulator'
    platform: windows
    tty: true
    mem_limit: 3GB
    ports:
        - '8081:8081'
        - '8900:8900'
        - '8901:8901'
        - '8902:8902'
        - '10250:10250'
        - '10251:10251'
        - '10252:10252'
        - '10253:10253'
        - '10254:10254'
        - '10255:10255'
        - '10256:10256'
        - '10350:10350'
    networks:
      default:
        ipv4_address: 172.16.238.246
    volumes:
        - '${hostDirectory}:C:\CosmosDB.Emulator\bind-mount'

Következő lépések

Ebben a cikkben megtanulta, hogyan használhatja a helyi emulátort ingyenes helyi fejlesztéshez. Továbbléphet a következő cikkekre: