溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker和鏡像的操作示例

發(fā)布時間:2021-03-09 13:49:55 來源:億速云 閱讀:250 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹Docker和鏡像的操作示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

查找鏡像

我們可以從 Docker Hub 網(wǎng)站來搜索鏡像,Docker Hub 網(wǎng)址為: https://hub.docker.com/

我們也可以使用 docker search 命令來搜索鏡像。比如我們需要一個 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)建鏡像

當我們從 docker 鏡像倉庫中下載的鏡像不能滿足我們的需求時,我們可以通過以下兩種方式對鏡像進行更改。

1、從已經(jīng)創(chuàng)建的容器中更新鏡像,并且提交這個鏡像
2、使用 Dockerfile 指令來創(chuàng)建一個新的鏡像

更新鏡像

更新鏡像之前,我們需要使用鏡像來創(chuàng)建一個容器。

runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#

在運行的容器內(nèi)使用 apt-get update 命令進行更新。

在完成操作之后,輸入 exit 命令來退出這個容器。

此時 ID 為 e218edb10161 的容器,是按我們的需求更改的容器。我們可以通過命令 docker commit 來提交容器副本。

runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

各個參數(shù)說明:

  • -m: 提交的描述信息

  • -a: 指定鏡像作者

  • e218edb10161:容器 ID

  • runoob/ubuntu:v2: 指定要創(chuàng)建的目標鏡像名

構(gòu)建鏡像
我們使用命令 docker build , 從零開始來創(chuàng)建一個新的鏡像。為此,我們需要創(chuàng)建一個 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

每一個指令都會在鏡像上創(chuàng)建一個新的層,每一個指令的前綴都必須是大寫的。

第一條FROM,指定使用哪個鏡像源

RUN 指令告訴docker 在鏡像內(nèi)執(zhí)行命令,安裝了什么。。。

然后,我們使用 Dockerfile 文件,通過 docker build 命令來構(gòu)建一個鏡像。

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 :指定要創(chuàng)建的目標鏡像名

. :Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對路徑

使用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è)置鏡像標簽

我們可以使用 docker tag 命令,為鏡像添加一個新的標簽。

runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev

docker tag 鏡像ID,這里是 860c279d2fec ,用戶名稱、鏡像源名(repository name)和新的標簽名(tag)。

使用 docker images 命令可以看到,ID為860c279d2fec的鏡像多一個標簽。

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

以上是“Docker和鏡像的操作示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI