Introductie
Over het algemeen draaien Docker-containers slechts gedurende een bepaalde periode – de tijd die nodig is om de opdracht uit te voeren. De gegevens die beschikbaar zijn in de container zijn tijdens de runtime alleen toegankelijk vanuit de container.
Docker-volumes kunnen worden gebruikt om de bestanden eenvoudig te openen en ze voor een langere periode op te slaan. Als u bijvoorbeeld een Nginx-webserver hebt en u de logbestanden wilt opslaan voor audits, kunt u een Docker-volume gebruiken om de logbestanden van de container op uw hostmachine op te slaan.
In deze handleiding leert u hoe u gegevens kunt delen tussen de binnenkant van de Docker-container en de hostmachine.
Vereisten
Voor deze handleiding heeft u de volgende vereisten nodig:
- Ubuntu 18.04 Server: U kunt eenvoudig een nieuwe CloudSigma-server maken met een Ubuntu 18.04-image, door onze handige handleiding te volgen.
- Docker – U kunt installeren met behulp van onze handleiding over het instellen van Docker op Ubuntu en er vertrouwd mee raken.
Stap 1 – Een volume koppelen (Bind Mount)
U kunt een map maken met de naam logs in de thuismap van uw huidige gebruiker en deze koppelen aan /var/log/nginx in de Nginx-container met behulp van de volgende opdracht:
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
Hier is meer gedetailleerde informatie over deze opdracht:
--name=nginxgeeft een naam aan de container voor eenvoudige referentie.-dargument ontkoppelt het proces en voert het uit op de achtergrond.-v hostPath:containerPathkoppelt het hostpad en het containerpad om de koppeling tot stand te brengen.-p hostPort:containerPortargument koppelt de poort van de container aan de hostpoort.nginxaan het einde van de regel is de naam van de image die moet worden gebruikt om de container op te starten.
Stap 2 – Toegang tot gegevens op de host
Nu hebt u een Nginx-container op uw server draaien, en poort 5000 van uw server is gekoppeld aan poort 80 van de Nginx. U kunt de poort openen in de webbrowser met de volgende URL:
|
1 |
http://serverIP:5000/ |

In de map ~/logs ziet u de bestanden access.log en error.log. U kunt de logbestanden bekijken met de opdracht cat:
|
1 |
cat access.log |
|
1 2 3 |
Output: xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET /favicon.ico HTTP/1.1" 404 556 "http://xx.xxx.xxx.xxx:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" |
U kunt ook de logmap ~/logs op uw hostmachine controleren en het logbestand van Nginx vinden. Bovendien, als u wijzigingen aanbrengt in de logs map, worden deze ook weerspiegeld in de /var/log/nginx map van de container.
Conclusie
In deze handleiding hebt u geleerd hoe u gegevens kunt delen tussen de binnenkant van de Docker-container en de hostmachine. Dit is essentieel in ontwikkelomgevingen waar het analyseren van logbestanden een must is voor foutopsporing.
Voor meer bronnen over Docker op onze blog, kunt u het volgende bekijken:
- Hoe u Docker installeert & beheert op Ubuntu in the public cloud
- Docker installeren en instellen op CentOS 7
- Docker-bronnen opschonen – Images, containers en volumes
- Hoe u Docker uitvoert op CloudSigma (met CloudInit) Bijgewerkt
Veel computerplezier!
Reacties
Nog geen reacties. Wees de eerste.