Docker Containers & Java: What I Wish I Had Been Told
Inhoudsopgave:
Verbinding maken met een actieve Docker-container is handig als u wilt zien wat er in de container gebeurt. Als de Docker-container niet werkt zoals verwacht, kunt u deze aan de container bevestigen of een shell aan de container toevoegen en opdrachten uitvoeren zoals
ps
of
top
. U kunt ook de container invoeren, nieuwe pakketten installeren en er een nieuwe Docker-afbeelding van maken.
In deze zelfstudie leggen we uit hoe u een koppeling maakt met het hoofdproces van de container en hoe u een shell naar een actieve container kunt krijgen.
Bevestig aan een container
Hoewel het mogelijk is om meerdere processen in een container uit te voeren, voeren de meeste docker-containers slechts één proces uit. De opdracht die wordt uitgevoerd bij het starten van een container wordt gespecificeerd met behulp van de
ENTRYPOINT
en / of
RUN
.
Met
docker attach
opdracht
docker attach
kunt u uw terminal koppelen aan de actieve container. Dit is handig als u in realtime wilt zien wat er in de standaarduitvoer is geschreven of als u het proces interactief wilt regelen.
Laten we een nieuwe, vrijstaande Nginx-container uitvoeren met behulp van de officiële Nginx-afbeelding om beter te begrijpen hoe de opdracht
attach
werkt.
docker container run --name my_nginx -d -p 8080:80 nginx
De optie
-p 8080:80
vertelt Docker om poort 8080 van de container te binden aan poort 80 op de hostmachine.
Maak een lijst van de containers om te controleren of de container "my_nginx" actief is:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx
Bevestig de container met de ID of naam van de container:
docker container attach my_nginx
De standaardopdracht van de nginx-afbeelding die wordt uitgevoerd wanneer u de container uitvoert, is ingesteld op
CMD
. Wanneer u de opdracht
attach
uitvoert,
attach
uw terminal zich aan het
nginx
proces.
Open
127.0.0.1:8080
in uw browser en u kunt de uitvoer van het nginx-proces in realtime bekijken.
192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"
Om toegang te krijgen tot de containerlogboeken, gebruikt u liever de opdracht
docker logs
.
Gebruik de
CTRL-p
CTRL-q
om de container los te maken zonder deze te stoppen. Als u op
CTRL-c
drukt, wordt de container gestopt.
Als de lopende processen waaraan u koppelt, invoer accepteert, kunt u er instructies naartoe sturen.
Breng een shell naar een container
Met de opdracht
docker exec
kunt u opdrachten uitvoeren in een actieve container.
Start eerst een nieuwe container om te zien hoe de opdracht
exec
werkt en hoe deze kan worden gebruikt om de shell van de container in te voeren. We zullen de officiële MySQL-afbeelding gebruiken:
docker container run --name my_mysql -d mysql
Hiermee maakt u een container met de naam "my_mysql".
Om een opdracht in de container uit te voeren, voert u de volgende opdracht uit:
docker container exec -it my_mysql ls /var
De optie
-i
staat voor interactief en
-t
vertelt Docker om een pseudo TTY-apparaat toe te wijzen. Met het commando
ls
worden alle bestanden en mappen in de map
/var
container weergegeven:
backups cache lib local lock log mail opt run spool tmp
Om een shell in de container te krijgen, dwz om in de container te komen, start u een nieuwe shellsessie door de shell-binary uit te voeren. U kunt
sh
,
bash
of elke andere shell gebruiken die in de afbeelding is opgenomen.
De onderstaande opdracht maakt een nieuwe Bash-sessie in de container:
docker container exec -it my_mysql /bin/bash
Uw opdrachtprompt zal veranderen, wat aangeeft dat u nu aan de containerschaal werkt.
Vanaf hier kunt u opdrachten op dezelfde manier uitvoeren als op elke andere Linux-server. Als u bijvoorbeeld een lijst wilt krijgen van de huidige omgevingsvariabelen, typt u
env
:
env
De uitvoer ziet er ongeveer zo uit:
HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env
Conclusie
Met de
docker exec
en
docker attach
commando's kunt u verbinding maken met een actieve container. Om een interactieve shell in een container te krijgen, gebruikt u de opdracht
exec
om een nieuwe shell-sessie te starten. Met het commando hecht u uw terminal aan een actieve container.
Gratis hulpprogramma voor delen van scherm helpt bedrijven samenwerken
Een programma voor het delen van schermen kan werknemers helpen opleiden of klanten bijwerken. Ze zullen je pc zien alsof ze over je schouder kijken, zelfs als ze over het kantoor zijn of over de hele wereld. Maar voordat u uitgaat van een betaalde service met onbeperkte verbindingen, overweeg dan gratis en goedkope alternatieven. Je kunt besparen als je maar een paar keer per maand hoeft te delen, of opschalen als je meer functionaliteit wilt kopen.
Een zachte Larry-pagina verrast bij Google I / O
Er werd niet verwacht dat de pagina op I / O sprak, deels omdat hij last had van een probleem met de stembanden dat hij uiteindelijk opende over deze week. Op woensdag sprak hij zacht maar duidelijk in een handheld-microfoon.
Verbinding met extern bureaublad-verbinding maken in Windows 10
Deze korte zelfstudie laat u zien hoe u een snelkoppeling naar een extern bureaublad in Windows 10 kunt maken / 8 / 7. Controleer of de velden Computer, Gebruikersnaam enz. Correct zijn ingevuld.







