Docker is een forum dat is ontworpen om ontwikkelaars te helpen bij het bouwen, implementeren en uitvoeren van containerapplicaties. Voor dat doel worden Docker-images gebruikt. Docker-images zijn in feite een uitvoerbaar pakket van een applicatie dat alles bevat wat nodig is om een applicatie uit te voeren. Ontwikkelaars kunnen verschillende images bouwen voor alle soorten applicaties, zoals Java en nog veel meer.
De uitkomsten van deze blog zijn:
Hoe bouw ik een afbeelding met behulp van een Dockerfile voor een Java-toepassing?
Bekijk de volgende stappen om een image voor een Java-applicatie te bouwen via de Dockerfile.
Stap 1: Open de Java-map
Start eerst de broncode-editor van uw voorkeur en ga naar de map waarin uw Java-toepassing zich bevindt. Zo openden we bijvoorbeeld de Visual Studio-code broncode-editor en klik op de open folder… keuze:
Kies nu de specifieke map op uw lokale computer en druk op Selecteer map knop. Hier hebben we de Java1 map:
Stap 2: Open het Java-toepassingsbestand
Open vervolgens uw Java-toepassingsmap en bekijk de bestaande bestanden. In ons geval bestaat er slechts één bestand met de naam demo2.java die de volgende code bevat:
klasse demo1 {openbare statische leegte hoofd ( Snaar [ ] arg ) {
System.out.println ( 'Hallo, welkom op mijn LinuxHint-pagina' ) ;
}
}
Stap 3: Dockerbestand maken
Klik vervolgens op het hieronder gemarkeerde pictogram om een Dockerfile te maken:
Zoals u kunt zien, is het Dockerfile met succes aangemaakt:
Stap 4: Dockerbestand bewerken
Plak daarna de volgende code in het Dockerfile:
VAN openjdk: elfWERKDIR / app
KOPIE. .
CMD [ 'Java' , './demo1.java' ]
Hier:
-
- VAN commando wordt gebruikt om de basisafbeelding in te stellen voor volgende instructies. Ons basisbeeld is openjdk:11 .
- WERKDIR De opdracht wordt gebruikt om op elk gewenst moment de werkmap van de Docker-container op te geven. Hier, /app is een werkmap.
- KOPIËREN opdracht wordt gebruikt voor het kopiëren van bestanden van het hostsysteem naar de nieuw gemaakte Docker-image. In ons geval kopieert het het bestand uit de huidige werkmap en plakt het in het huidige containerpad.
- CMD opdracht wordt gebruikt om de opdracht op te geven die moet worden uitgevoerd wanneer een Docker-container start. Hier, Java is het uitvoerbare bestand en de demo1.java bestand is een parameter:
Stap 5: Open een nieuwe terminal
Klik vervolgens op de hieronder gemarkeerde drie stippen, kies de Terminal optie, en druk op Nieuwe terminal een nieuwe terminal lanceren:
Stap 6: Bouw Docker-image
Nadat u dit hebt gedaan, voert u de meegeleverde opdracht uit om een Docker-image voor een Java-toepassing te bouwen:
havenarbeider gebouwd -T demo1.
In het bovengenoemde commando:
-
- havenarbeider gebouwd commando wordt gebruikt om een afbeelding te genereren.
- -T tag wordt gebruikt voor het opgeven van de afbeeldingsnaam.
- demo1 is onze afbeeldingsnaam.
- . gebruikt om de afbeelding te laden:
Stap 7: Lijst afbeeldingen
Om te controleren of er een nieuwe Docker-image is gebouwd of niet voor de Java-toepassing, voert u de volgende opdracht uit:
docker-afbeeldingen
Volgens de onderstaande uitvoer bestaat de nieuwe docker-image in de lijst:
Stap 8: Voer Build Docker Image uit
Voer ten slotte de build Docker-installatiekopie uit via de havenarbeider uitgevoerd commando samen met de naam van de afbeelding:
docker voert demo1 uit
Als gevolg hiervan zal het de afbeelding uitvoeren en alle bestaande instructies weergeven:
Welk type problemen treedt vaak op tijdens het bouwen van Docker-images?
Bij het bouwen van een nieuwe image op Docker komen gebruikers vaak meerdere problemen tegen, die hieronder worden vermeld:
-
- Als ontwikkelaars krachtige raamwerken van een programmeertaal zouden gebruiken om gemakkelijk applicaties te maken, zouden ze het moeilijk kunnen vinden om Dockerfile te schrijven voor het bouwen van applicatie-images.
- Gegenereerde afbeeldingen kunnen groot zijn en meer ruimte in beslag nemen, omdat wanneer gebruikers een afbeelding proberen te bouwen, elke opdracht in de Dockerfile een laag van de afbeelding genereert die de afbeeldingsstructuur complexer maakt en de afbeeldingsgrootte vergroot.
- Als ontwikkelaars de broncode van hun applicatie in de uiteindelijke afbeelding verpakken, kan dit leiden tot codelekken.
Dat is het! We hebben de methode beschreven om via Dockerfile een image voor een Java-applicatie te bouwen.
Conclusie
Docker-images bevatten de reeks instructies die worden gebruikt voor het uitvoeren van de applicatie in een container zoals Java . Om een image te bouwen met behulp van een Dockerfile voor een Java-toepassing, moet u eerst de specifieke map openen die de Java-broncodebestanden bevat. Maak vervolgens een nieuw Dockerbestand en voeg de vereiste opdrachten toe. Open daarna de terminal en voer het docker build -t