English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il client Docker è molto semplice, possiamo semplicemente inserire il comando docker per vedere tutte le opzioni dei comandi del client Docker.
w3codebox@w3codebox:~# docker
Puoi passare il comando docker command --help Per ottenere una comprensione più approfondita dell'uso specifico di un comando Docker.
Ad esempio, per vedere docker stats Metodo di utilizzo specifico dell'istruzione:
w3codebox@w3codebox:~# docker stats --help
Se non abbiamo l'immagine ubuntu locale, possiamo utilizzare il comando docker pull per caricare l'immagine ubuntu:
$ docker pull ubuntu
I seguenti comandi utilizzano l'immagine ubuntu per avviare un container, i parametri sono per entrare nel container in modalità a riga di comando:
$ docker run -it ubuntu /bin/bash
Spiegazione dei parametri:
-i: operazione interattiva.
-t: terminale.
ubuntu: immagine ubuntu.
/bin/bashIl comando dopo il nome dell'immagine è il comando, qui desideriamo avere uno Shell interattivo, quindi usiamo /bin/bash.
Per uscire dal terminale, inserisci direttamente exit:
root@ed09e4490c57:/# exit
Ecco come vedere tutti i comandi dei container:
$ docker ps -a
Clicca sull'immagine per visualizzare la versione più grande:
Utilizza docker start per avviare un container fermato:
$ docker start b750bbbcfd88
Nella maggior parte delle situazioni, desideriamo che il servizio di docker sia in esecuzione in background, possiamo utilizzare -d per specificare il modo di esecuzione del container.
$ docker run -itd --name ubuntu-test ubuntu /bin/bash
Clicca sull'immagine per visualizzare la versione più grande:
Nota:}Con il parametro -d di default non si entra nel container, per entrare nel container è necessario utilizzare l'istruzione docker exec(Verrà illustrato di seguito).
Il comando per fermare un container è il seguente:
$ docker stop <ID_container>
I container fermi possono essere riavviati con docker restart:
$ docker restart <ID_container>
Utilizzando -d Quando si utilizza il parametro, il container si avvierà in background. Per accedere al container, utilizzare le seguenti istruzioni:
docker attach
docker exec:Si consiglia di utilizzare il comando docker exec, perché l'uscita dal terminale del container non causerebbe la fermata del container.
Comando attach
Di seguito è riportato un esempio di utilizzo del comando docker attach.
$ docker attach 1e560fca3906
Attenzione: Se esce da questo container, il container si fermerà.
Comando exec
Di seguito è riportato un esempio di utilizzo del comando docker exec.
docker exec -it 243c32535da7 /bin/bash
Attenzione: Se esce da questo container, il container non si fermerà, ecco perché si consiglia di utilizzare docker exec del motivo.
Per ulteriori dettagli sui parametri, utilizzare il comando docker exec --help.
Esporta container
Se si desidera esportare un container locale, si può utilizzare docker export Comando.
$ docker export 1e560fca3906 > ubuntu.tar
Esporta lo snapshot del container 1e560fca3906 in un file locale ubuntu.tar.
In questo modo esporti lo snapshot del container in un file locale.
Importazione snapshot del container
Puoi utilizzare docker import per importare di nuovo un'immagine da un file di snapshot del container. Esempio seguente: il file di snapshot ubuntu.tar viene importato nell'immagine test/ubuntu:v1:
$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
Inoltre, è anche possibile importare specificando un URL o una directory, ad esempio:
$ docker import http://example.com/exampleimage.tgz example/imagerepo
Utilizzo per rimuovere il container docker rm Comando:
$ docker rm -f 1e560fca3906
Il comando seguente può pulire tutti i container in stato di terminazione.
$ docker container prune
Il container che abbiamo eseguito prima non ha alcun uso speciale.
Procediamo a tentare di costruire un'applicazione web utilizzando Docker.
Stiamo eseguendo un'applicazione Python Flask in un container Docker per eseguire una web application.
w3codebox@w3codebox:~# docker pull training/webapp # Carica l'immagine w3codebox@w3codebox:~# docker run -d -P training/webapp python app.py
Spiegazione dei parametri:
-d:Fai eseguire il container in background.
-P:Mappa casualmente il porto di rete interno del container al nostro host.
Usa docker ps per visualizzare i container in esecuzione:
w3codebox@w3codebox:~# docker ps ID_CONTAINER IMMAGINE COMMAND ... PORTI d3d5e39ed9d3 training/webapp "python app.py" ... 0.0.0.0:32769->5000/tcp
Ecco le informazioni aggiuntive sui porti.
PORTI 0.0.0.0:32769->5000/tcp
Docker ha aperto il porto 5000 (porto predefinito di Python Flask) e lo ha mappato al porto 32769 del host.
In questo caso possiamo accedere all'applicazione WEB tramite il browser
Possiamo anche impostare un porto diverso tramite il parametro -p:
w3codebox@w3codebox:~$ docker run -d -p 5000:5000 training/webapp python app.py
docker psVisualizza i container in esecuzione
w3codebox@w3codebox:~# docker ps CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar d3d5e39ed9d3 training/webapp ... 0.0.0.0:32769->5000/tcp xenodochial_hoov
Il porto 5000 interno del container viene mappato al porto 5000 del nostro host locale.
attraverso docker ps Il comando può visualizzare la mappatura dei porti dei container,docker e ha fornito un altro modo rapido docker port,fornisce anche un altro modo rapido docker port Puoi visualizzare la mappatura di un porto specifico (ID o nome) del container al porto dell'host.
Il container web che abbiamo creato sopra ha l'ID bf08b7f2cd89 Il nome è wizardly_chandrasekhar.
Posso usare docker port bf08b7f2cd89 o docker port wizardly_chandrasekhar per visualizzare la mappatura dei porti del container.
w3codebox@w3codebox:~$ docker port bf08b7f2cd89 5000/tcp -> 0.0.0.0:5000
w3codebox@w3codebox:~$ docker port wizardly_chandrasekhar 5000/tcp -> 0.0.0.0:5000
docker logs [ID o nome] può visualizzare l'output standard del container interno.
w3codebox@w3codebox:~$ docker logs -f bf08b7f2cd89 * In esecuzione su http://0.0.0.0:5000/ (Press CTRL+C to quit) 192.168.239.1 - - [09/May/2016 16:30:37] "GET / HTTP/1.1" 200 - 192.168.239.1 - - [09/May/2016 16:30:37] "GET favicon.ico HTTP/1.1" 404 -
-f: Fai docker logs Come usare tail -f Così come esportare l'output standard del container interno.
Da qui, possiamo vedere che l'applicazione utilizza il porto 5000 e possiamo vedere i log di accesso dell'applicazione.
Possiamo anche utilizzare docker top per visualizzare i processi in esecuzione all'interno del container
w3codebox@w3codebox:~$ docker top wizardly_chandrasekhar UID PID PPID ... TIME CMD root 23245 23228 ... 00:00:00 python app.py
使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
w3codebox@w3codebox:~$ docker inspect wizardly_chandrasekhar [ { "Id": "bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85", "Created": "2018-09-17T01:41:26.174228707Z", "Path": "python", "Args": [ "app.py" ], "State": { "ExitCode": 0, "Error": "", "StartedAt": "2018-09-17T01:41:26.494185806Z", "FinishedAt": "0001-01-01T00:00:00Z" , ......
w3codebox@w3codebox:~$ docker stop wizardly_chandrasekhar wizardly_chandrasekhar
已经停止的容器,我们可以使用命令 docker start 来启动。
w3codebox@w3codebox:~$ docker start wizardly_chandrasekhar wizardly_chandrasekhar
docker ps -l 查询最后一次创建的容器:
# docker ps -l CONTAINER ID IMAGE PORTS NAMES bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
Per i container in esecuzione, possiamo utilizzare il comando docker restart per riavviare.
Possiamo utilizzare il comando docker rm per eliminare i container non necessari
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar wizardly_chandrasekhar
Quando si elimina un container, deve essere in stato di arresto; altrimenti, viene restituito l'errore seguente
w3codebox@w3codebox:~$ docker rm wizardly_chandrasekhar Risposta di errore dal demone: Non puoi rimuovere un container in esecuzione bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Stoppa il container prima di tentare la rimozione o rimuovi forzatamente