English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Quando si esegue un container, se l'immagine utilizzata non esiste localmente, Docker la scarica automaticamente dal deposito delle immagini Docker, per default dal deposito pubblico Docker Hub.
Ora esaminiamo:
1、Gestire e utilizzare le immagini locali del host Docker
2、Creare un'immagine
Possiamo utilizzare docker images per elencare le immagini presenti sul nostro host locale.
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B training/webapp latest 6fae60ef3446 11 mesi fa 348.8 MB
Spiegazione delle opzioni:
REPOSITORY:Rappresenta il deposito dell'immagine
TAG:Tag dell'immagine
IMAGE ID:ID dell'immagine
CREATED:Data di creazione dell'immagine
SIZE:Dimensione dell'immagine
Un deposito può avere più TAG, che rappresentano diverse versioni di questo deposito. Ad esempio, nel deposito ubuntu ci sono diverse versioni come 15.10, 14.04, ecc. Usiamo REPOSITORY:TAG per definire diverse immagini.
Quindi, se vogliamo eseguire un container utilizzando l'immagine di sistema ubuntu con versione 15.10, il comando è il seguente:
w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash root@d77ccb2e5cca:/#
参数说明:
-i: Operazioni interattive.
-t: Terminale.
ubuntu:15.10: Questo indica che il container viene avviato con l'immagine di versione ubuntu 15.10.
/bin/bashIl comando dopo il nome dell'immagine è il comando, qui vogliamo avere uno Shell interattivo, quindi usiamo /bin/bash.
Se vuoi eseguire un container utilizzando l'immagine di sistema ubuntu con versione 14.04, il comando è il seguente:
w3codebox@w3codebox:~$ docker run -t -i ubuntu:14.04 /bin/bash root@39e968165990:/#
Se non specifichi un tag di versione dell'immagine, ad esempio usi solo ubuntu, Docker utilizzerà per default l'immagine ubuntu:latest.
Quando utilizziamo un'immagine non esistente sul nostro host locale, Docker scarica automaticamente questa immagine. Se vogliamo scaricare preventivamente questa immagine, possiamo utilizzare il comando docker pull per farlo.
Cw3codebox@w3codebox:~$ docker pull ubuntu:13.10 13.10: Trazione da library/ubuntu 6599cadaf950: Scaricamento completato 23eda618d451: Scaricamento completato f0be3084efe9: Scaricamento completato 52de432f084b: Scaricamento completato a3ed95caeb02: Scaricamento completato Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3 Stato: Nuova immagine scaricata per ubuntu:13.10
Dopo il completamento del download, possiamo utilizzare direttamente questa immagine per eseguire il container.
Possiamo cercare immagini sul sito Docker Hub, l'indirizzo di Docker Hub è:https://hub.docker.com/
Possiamo anche utilizzare il comando docker search per cercare immagini. Ad esempio, se abbiamo bisogno di un'immagine httpd come servizio web, possiamo cercare httpd utilizzando il comando docker search per trovare l'immagine adatta a noi.
w3codebox@w3codebox:~$ docker search httpd
NOME: Nome della sorgente del deposito delle immagini
DESCRIZIONE: Descrizione dell'immagine
UFFICIALE: Pubblicato ufficialmente da docker
stars: Simile a star su Github, significa like e preferito.
AUTOMATICO: Costruzione automatica.
Abbiamo deciso di utilizzare l'immagine ufficiale httpd dell'immagine sopra, scaricare l'immagine utilizzando il comando docker pull.
w3codebox@w3codebox:~$ docker pull httpd Utilizzando il tag predefinito: ultimo Ultimo: Trazione da library/httpd Trazione dello strato fs Scaricamento completato Scaricamento completato Scaricamento completato ea7c1f032b5c: In attesa be44112b72c7: In attesa
Dopo aver completato il download, possiamo utilizzare questa immagine.
w3codebox@w3codebox:~$ docker run httpd
Utilizzo per eliminare l'immagine docker rmi Il comando, ad esempio, possiamo eliminare l'immagine hello-world:
$ docker rmi hello-world
Quando l'immagine scaricata dal deposito delle immagini docker non soddisfa le nostre esigenze, possiamo modificare l'immagine attraverso due modi seguenti.
1、Aggiornare l'immagine dal container già creato e inviare questa immagine
2、Utilizzare l'istruzione Dockerfile per creare una nuova immagine
Prima di aggiornare l'immagine, dobbiamo utilizzare l'immagine per creare un container.
w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash root@e218edb10161:/#
Usare nel container in esecuzione apt-get update Il comando esegue l'aggiornamento.
Dopo aver completato l'operazione, digitare il comando exit per uscire dal container.
In questo momento, il container con ID e218edb10161 è stato modificato secondo le nostre esigenze. Possiamo utilizzare il comando docker commit per inviare una copia del container.
w3codebox@w3codebox:~$ docker commit -m="has update" -a="w3codebox" e218edb10161 w3codebox/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
descrizione dei vari parametri:
-m: descrizione delle informazioni inviate
-a: specificare l'autore dell'immagine
e218edb10161:ID del container
w3codebox/ubuntu:v2: specificare il nome dell'immagine da creare
Possiamo utilizzare docker images il comando per visualizzare i nostri nuovi immagine w3codebox/ubuntu:v2:
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE w3codebox/ubuntu v2 70bf1840fd7c 15 secondi fa 158.5 MB ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
usando la nostra nuova immagine w3codebox/ubuntu per avviare un container
w3codebox@w3codebox:~$ docker run -t -i w3codebox/ubuntu:v2 /bin/bash root@1a9fbdeb5da3:/#
Usiamo il comando docker build , dal principio per creare una nuova immagine. Per fare questo, dobbiamo creare un file Dockerfile che contenga una serie di istruzioni per dire a Docker come costruire la nostra immagine.
w3codebox@w3codebox:~$ cat Dockerfile DAL centos:6.7 MAINTENITORE Fisher "[email protected]" ESEGUITO /bin/echo 'root:123456' |chpasswd ESEGUITO useradd w3codebox ESEGUITO /bin/echo 'w3codebox:123456' |chpasswd ESEGUITO /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local ESPOSA 22 ESPOSA 80 CMD /usr/sbin/sshd -D
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN指令告诉docker在镜像内执行命令,安装了什么。。。
然后,我们使用Dockerfile文件,通过docker build命令来构建一个镜像。
w3codebox@w3codebox:~$ docker build -t w3codebox/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "[email protected]" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd w3codebox ......
参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile文件所在目录,可以指定Dockerfile的绝对路径
使用docker images查看创建的镜像已经在列表中存在,镜像ID为860c279d2fec
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE w3codebox/centos 6.7 860c279d2fec About a minute ago 190.6 MB w3codebox/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
Possiamo utilizzare l'immagine nuova per creare il container
w3codebox@w3codebox:~$ docker run -t -i w3codebox/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id w3codebox uid=500(w3codebox) gid=500(w3codebox) groups=500(w3codebox)
Dal di sopra si vede che il nuovo immagine contiene l'utente che abbiamo creato, w3codebox.
Possiamo utilizzare il comando docker tag per aggiungere un nuovo etichetta all'immagine.
w3codebox@w3codebox:~$ docker tag 860c279d2fec w3codebox/centos:dev
docker tag 镜像ID,qui 860c279d2fec, nome utente, nome repository (repository name) e il nuovo nome etichetta (tag).
Utilizzando il comando docker images è possibile vedere che l'immagine con ID 860c279d2fec ha un etichetta in più.
w3codebox@w3codebox:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE w3codebox/centos 6.7 860c279d2fec 5 hours ago 190.6 MB w3codebox/centos dev 860c279d2fec 5 hours ago 190.6 MB w3codebox/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 13 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB