English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spiegazione dettagliata dei comandi di base di Docker

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.

Ti potrebbe interessare