Docker和鏡像的操作方法
查找鏡像
我們可以從 Docker Hub 網(wǎng)站來搜索鏡像,Docker Hub 網(wǎng)址為: https://hub.docker.com/
我們也可以使用 docker search 命令來搜索鏡像。比如我們需要一個(gè) httpd 的鏡像來作為我們的 web 服務(wù)。我們可以通過 docker search 命令搜索 httpd 來尋找適合我們的鏡像。
docker search httpd
拖取鏡像
我們決定使用上圖中的 httpd 官方版本的鏡像,使用命令 docker pull 來下載鏡像。
docker pull httpd
刪除鏡像
鏡像刪除使用 docker rmi 命令,比如我們刪除 hello-world 鏡像:
$ docker rmi hello-world
創(chuàng)建鏡像
當(dāng)我們從 docker 鏡像倉庫中下載的鏡像不能滿足我們的需求時(shí),我們可以通過以下兩種方式對(duì)鏡像進(jìn)行更改。
1、從已經(jīng)創(chuàng)建的容器中更新鏡像,并且提交這個(gè)鏡像
2、使用 Dockerfile 指令來創(chuàng)建一個(gè)新的鏡像
更新鏡像
更新鏡像之前,我們需要使用鏡像來創(chuàng)建一個(gè)容器。
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash root@e218edb10161:/#
在運(yùn)行的容器內(nèi)使用 apt-get update 命令進(jìn)行更新。
在完成操作之后,輸入 exit 命令來退出這個(gè)容器。
此時(shí) ID 為 e218edb10161 的容器,是按我們的需求更改的容器。我們可以通過命令 docker commit 來提交容器副本。
runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
各個(gè)參數(shù)說明:
- -m: 提交的描述信息
- -a: 指定鏡像作者
- e218edb10161:容器 ID
- runoob/ubuntu:v2: 指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名
構(gòu)建鏡像
我們使用命令 docker build , 從零開始來創(chuàng)建一個(gè)新的鏡像。為此,我們需要?jiǎng)?chuàng)建一個(gè) Dockerfile 文件,其中包含一組指令來告訴 Docker 如何構(gòu)建我們的鏡像。
runoob@runoob:~$ cat Dockerfile FROM centos:6.7 MAINTAINER Fisher "fisher@sudops.com" RUN /bin/echo 'root:123456' |chpasswd RUN useradd runoob RUN /bin/echo 'runoob:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D
每一個(gè)指令都會(huì)在鏡像上創(chuàng)建一個(gè)新的層,每一個(gè)指令的前綴都必須是大寫的。
第一條FROM,指定使用哪個(gè)鏡像源
RUN 指令告訴docker 在鏡像內(nèi)執(zhí)行命令,安裝了什么。。。
然后,我們使用 Dockerfile 文件,通過 docker build 命令來構(gòu)建一個(gè)鏡像。
runoob@runoob:~$ docker build -t runoob/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "fisher@sudops.com" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd runoob ......
參數(shù)說明:
-t :指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名
. :Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對(duì)路徑
使用docker images 查看創(chuàng)建的鏡像已經(jīng)在列表中存在,鏡像ID為860c279d2fec
runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB runoob/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
我們可以使用新的鏡像來創(chuàng)建容器
runoob@runoob:~$ docker run -t -i runoob/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id runoob uid=500(runoob) gid=500(runoob) groups=500(runoob)
從上面看到新鏡像已經(jīng)包含我們創(chuàng)建的用戶 runoob。
設(shè)置鏡像標(biāo)簽
我們可以使用 docker tag 命令,為鏡像添加一個(gè)新的標(biāo)簽。
runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev
docker tag 鏡像ID,這里是 860c279d2fec ,用戶名稱、鏡像源名(repository name)和新的標(biāo)簽名(tag)。
使用 docker images 命令可以看到,ID為860c279d2fec的鏡像多一個(gè)標(biāo)簽。
runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB runoob/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
到此這篇關(guān)于Docker和鏡像的操作方法的文章就介紹到這了,更多相關(guān)Docker和鏡像操作內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。