English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
concetti di base di Docker
Docker è un motore di container open source che permette agli sviluppatori di impacchettare le loro applicazioni e dipendenze in un container portatile e poi distribuirle su qualsiasi macchina Linux popolare.
Docker è una piattaforma aperta che ridefinisce i processi di sviluppo, test, distribuzione e部署程序,Docker può essere definito come 'costruisci una volta, esegui ovunque', questo è ciò che Docker propone 'Build once, Run anywhere'
Creazione di immagini
Ci sono tre metodi per creare immagini:
Creazione basata su contenitori esistenti
Importazione basata su modelli locali
# docker load < centos_7.1.tar
Creazione basata su contenitori esistenti
Il comando docker commit è utilizzato principalmente, il formato del comando è:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:tag]] include principalmente:
-a ,--author="" Informazioni sull'autore
-m,--message="" Messaggio di presentazione
-p,--pause=true Ferma la cattura del contenitore al momento della presentazione
Ad esempio:
# docker run -it centos /bin/bash [root@d7e7ac1cbca2 /]# touch test [root@d7e7ac1cbca2 /]# ls anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys test tmp usr var # docker commit -m "add a file" -a "kafeikele" de6 centos_copy 5d318afa9e6f7fdb755db97e29e3860b752f24b0b50e6bfa0b7e457450802c0e # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos_copy latest 5d318afa9e6f 13 seconds ago 196.7 MB
Importazione basata su modelli locali
Si consiglia di utilizzare i modelli forniti da openVZ per creare
https://openvz.org/Download/templates/precreated #cat centos-7-x86_64-minimal.tar.gz.crdownload | docker import - centos:latest
Esportazione ed importazione di immagini
# docker images centos 7.1.1503 47a77536ad4c 8 weeks ago 212.1 MB # docker save -o centos_7.1.tar centos:7.1.1503 # docker load --input centos_7.1.tar # docker load --input centos_7.1.tar
# docker load < centos_7.1.tar
Basato su Dockerfile
Il contenuto successivo è illustrato in dettaglio
# docker run centos echo "hello world" Impossibile trovare l'immagine 'centos:latest' localmente latest: Trazione da centos 47d44cb6f252: Trazione completata 168a69b62202: Trazione completata 812e9d9d677f: Trazione completata 4234bfdd88f8: Trazione completata ce20c473cd8a: Trazione completata centos:latest: L'immagine che stai tirando è stata verificata. Importante: la verifica dell'immagine è una funzione di anteprima tecnica e non dovrebbe essere considerata come affidabile per fornire security. Digest: sha256:3aaab9f1297db9b013063c781cfe901e2aa6e7e334c1d1f4df12f25ce356f2e5 Status: Nuova immagine scaricata per centos:latest hello world
Spiegazione dei comandi:
docker run: comando standard di avvio del contenitore
centos: nome dell'immagine, il valore predefinito è latest
echo e il contenuto successivo: il comando eseguito dopo l'avvio del contenitore
Avviare un contenitore interattivo
docker run -it centos /bin/bash
*Nota: -t indica la presenza di un terminale virtuale o di un terminale all'interno del contenitore, -i indica che è permesso interagire con lo STDIN del contenitore
Avviare un contenitore Docker in modalità servizio
Sei effettivamente testato, probabilmente hai notato che dopo aver avviato il primo contenitore 'hello world' e eseguito il comando echo, il contenitore si è uscito. Mentre il secondo contenitore interattivo, il contenitore si chiude anche quando l'utente esce dal bash del contenitore corrente. Questo non soddisfa chiaramente i requisiti di esecuzione a lungo termine di un servizio. Fortunatamente, docker run offre il parametro '-d' che consente di avviare il contenitore in modalità demone.
docker run -d centos /bin/bash -c "while true; do echo Docker,hello world; sleep 2; <br>179fc7f17c358834364d23112aa26d6a9e1875b2281563720425f62a8f1b5c33
Questa lunga stringa si chiama ID del container. È l'identificativo unico del container, quindi possiamo usarlo per operare sul container, come visualizzare i log, fermare o eliminare il container, ecc.
dock logs 179fc7f17c358834364d
E perché si utilizza un ciclo infinito per eseguire l'output?
Poiché se non è un ciclo infinito, il processo nel container termina dopo una singola uscita. Quando tutti i processi unici del container sono terminati, il container si ferma. Pertanto, se si desidera eseguire un servizio specifico nel container, tale servizio deve essere eseguito anche in modalità di processo in background nel container.
docker run [OPZIONI] IMMAGINE [COMANDO] [ARG...]
Opzioni principali:
-d : Esegui il container in modalità di background
-t : Fornisce un terminale virtuale
-i : Fornisce input interattivo, generalmente utilizzato con “-t”, se viene fornito solo l'opzione “-i”, il container non può essere uscito dopo l'avvio
-v : Mappa un volume al container, ad esempio: -p /data/www:/var/www/html
-p : Mappa il porto del container al host, ad esempio: -p 8080:80
Più comandi di operazione
# docker images Elenca tutte le immagini locali # docker search centos Cerca immagini nel deposito di immagini predefinito NOME DESCRIZIONE ST stars UFFICIALE AUTOMATICO centos L'edizione ufficiale di CentOS. 2767 [OK] ansible/centos7-ansible Ansible on Centos7 90 [OK] jdeathe/centos-ssh CentOS-6 6.8 x86_64 / CentOS-7 7.2.1511 x8... 42 [OK] jdeathe/centos-ssh-apache-php CentOS-6 6.8 x86_64 - Apache / PHP / PHP M... 21 [OK] nimmis/java-centos Questo è l'immagine docker di CentOS 7 con dif... 17 [OK] consol/centos-xfce-vnc Contenitore CentOS con "senza interfaccia" VNC sessi... 14 [OK] #docker pull centos Scarica l'immagine sul locale #docker create -it ubuntu:latest Crea un contenitore Impossibile trovare l'immagine 'ubuntu:latest' localmente latest: Scaricamento da ubuntu 58488e45273c: Scaricamento completato 25810b66099e: Scaricamento completato 6571ba684f54: Scaricamento completato 6ed49a73d8f0: Scaricamento completato c53777cbfc31: Scaricamento completato 56465e1e45d2: Scaricamento completato Digest: sha256:312986132029d622ae65423ca25d3a3cf4510de25c47b05b6819d61e2e2b5420 Stato: Nuova immagine scaricata per ubuntu:latest 1330233e50aba7fca99e5914bd28dd89321bc86ec35fb36b4775d3424337c190 Il contenitore creato con il comando docker create si trova in stato di arresto e deve essere avviato con docker start # docker ps -a CONTAINER ID IMAGINE COMANDO CREATE STATO PORTI NOMI 1330233e50ab ubuntu:latest "/bin/bash" Circa un minuto fa happy_engelbart Il comando docker run è equivalente a eseguire prima il comando docker create e poi il comando docker start # docker run ubuntu /bin/echo "hello world" hello world
Entrare nel container
Metodo uno:
# docker attach a54615a88787 L'ultimo è il nome o l'id del container, il container docker esce anche quando si esce, non utilizzato spesso
Metodo due:
# docker exec -it a54615a88787 /bin/bash L'ultimo è il nome o l'id del container
Metodo tre:
yum -y install util-linux # docker inspect --format "{{.State.Pid}}" stupefied_cray L'ultimo è il nome del container 4899 # nsenter --target 4899 --mount --uts --ipc --net --pid
Script
#!/bin/bash CNAME=$1 CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME) nsenter --target $CPID --mount --uts --ipc --net –pid
Il seguente è un'analisi dettagliata dei comandi di base di Docker fornita dall'autore, speriamo che sia utile a tutti. Se avete qualsiasi domanda, lasciate un commento e l'autore risponderà tempestivamente. Ringraziamo anche il supporto della comunità del sito Web di Yell.
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta ai rispettivi proprietari, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene il diritto di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.