Tárolja Rust alkalmazásait a Dockerrel, hogy leegyszerűsítse a telepítést és biztosítsa a konzisztenciát a különböző környezetekben.
A konténerezés alapvető előnyöket kínál a hordozhatóság, az elszigeteltség és a hatékonyság tekintetében. Lehetővé teszi az alkalmazások konzisztens telepítését különböző környezetekben, és biztosítja a biztonságot és a stabilitást az alkalmazások elkülönítése révén. Emellett optimalizálja az erőforrás-kihasználást, leegyszerűsíti a fejlesztési és felügyeleti folyamatokat, valamint javítja a méretezhetőséget.
A Rust alkalmazások Dockerrel való konténerbe helyezése megbízható és hatékony eszközt kínál az alkalmazások és azok függőségeik önálló és hordozható környezetekbe történő csomagolására. Lehetővé teszi a zökkenőmentes végrehajtást a különböző rendszerek között, anélkül, hogy a mögöttes infrastruktúrával kellene foglalkozni.
Egyszerű webszerver beállítása Rustban az Actix segítségével
tudsz állítson be egy egyszerű webszervert a Rustban az Actix segítségével, és konténerbe helyezze az alkalmazást a Dockerrel. Megjelenik egy port, ahonnan elérheti a szervert a kérésekhez.
Futtassa ezt a parancsot új Rust projekt létrehozásához a Rakománycsomag menedzser:
rakomány új my-app
Amikor új Rust projektet hoz létre, a Cargo hozzáadja a rakomány.toml fájlt a projekt gyökérkönyvtárába. Nyissa meg a rakomány.toml fájlt, és adja hozzá az Actix ládát a függőségek szakasz így:
[függőségek]
actix-web = "4.3.1"
Így állíthat be egy egyszerű szervert Rustban az Actix ládával:
használat actix_web::{get, App, HttpResponse, HttpServer, Responder};
// A szükséges függőségek importálása az Actix Web keretrendszerből
#[kap("/")]
asyncfnHelló() -> impl Válasz {
// Kezelőfüggvény meghatározása a gyökérútvonalhoz ("/") érkező GET kérésekhez
// A függvény egy olyan típust ad vissza, amely megvalósítja a válaszadó tulajdonságotHttpResponse::Rendben().test("Helló Világ!")
// HTTP-válasz visszaadása 200-as állapotkóddal (OK)
// és egy választörzs a "Hello, World!"
}#[actix_web:: fő]
asyncfnfő-() -> std:: io::Eredmény {
// Az alkalmazás belépési pontjaHttpServer:: new(|| {
// A HttpServer új példányának létrehozásaApp:: new().service (hello)
// Hozzon létre egy új alkalmazást, és regisztrálja a hello funkciót
}).bind("127.0.0.1:8080")?.fuss().várja
// Kösd össze a szervert az IP-címmel és a porttal
// Indítsa el a szervert, és várja meg a befejezését
}
A program beállít egy alapvető HTTP webszervert az Actix segítségével. A Helló A függvény egy kezelő függvény, amely válaszol a porton lévő GET kérésekre 8080 a "Hello, World!" felirattal.
A fő- függvény beállít egy kiszolgálópéldányt a HttpServer:: új függvényt, és leköti a szervert, hogy a localhost címen fusson 127.0.0.1:8080.
Most hajtsa végre a rakományfuttatás parancs a webszerver futtatásához. Íme a cím webböngészőben való megnyitásának eredménye.
Dockerfile írása a Rust alkalmazáshoz
A Rust alkalmazás Dockerrel való tárolásához létre kell hoznia a Dockerfile és adja meg a konténerezési folyamat parancsait.
A Dockerfile nincs kiterjesztése; csak létre kell hoznia a Dockerfile fájlt. Létrehozhat egy .docker figyelmen kívül hagyni fájlt a munkakönyvtárban lévő fájlok kivonatához az összeállítási folyamatból.
Parancsok meghatározása a Docker-fájlban
A te Dockerfile olyan parancsokat fog tartalmazni, amelyek előhívnak egy alapképet a Docker tárolóból, beállítják a munkakönyvtárat, másolják a fájlok létrehozása, függőségek létrehozása, alkalmazás létrehozása, minimális lemezkép létrehozása, a port exportálása és futtatása Alkalmazás.
# Használja a Rust alapkép legújabb verzióját
TÓL TŐL rozsda: legújabb# Állítsa a tároló munkakönyvtárát a /my értékre
WORKDIR /usr/src/my-app# Másolja a Rust projekt fájljait a munkakönyvtárba
MÁSOLAT. .# Építsd meg a Rust alkalmazást
FUSS rakományépítés
# Állítsa be a parancsot a Rust alkalmazás futtatásához
CMD rakományfuttatás
Miután meghatározta az alkalmazás konténerbe helyezéséhez szükséges parancsokat, létrehozhat egy tárolót ezzel a paranccsal:
docker build -t my-app .
A parancs létrehoz egy Docker-képet az Ön számára my-app alkalmazást a címkével my-app az aktuális könyvtárból.
Használhatja a dokkolófuttatás parancsot a Docker-kép futtatásához.
docker run -p 8080:8080 my-app
A -p 8080:8080 Az opció leképezi a gazdagép 8080-as portját a tároló 8080-as portjára. A Docker a gazdagép 8080-as portjára irányított forgalmat a tároló 8080-as portjára továbbítja.
Kéréseket küldhet a tárolónak a 8080-as localhost porton keresztül a webszerver hívásához.
A Docker Compose lehetővé teszi a többtárolós hangszerelést
Kifinomult Docker-alkalmazások építése során gyakori feladat a több tárolóval való munkavégzés. A Docker Compose segítségével több Docker-tárolóval is dolgozhat.
A Docker Compose funkcionalitást biztosít az alkalmazást alkotó szolgáltatások meghatározásához, a szolgáltatások közötti függőségek meghatározásához, környezeti változók meghatározása az egyes szolgáltatásokhoz, indítás, leállítás, újraindítás, az alkalmazás tárolóinak skálázása és egyéb funkciókat.