中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Docker鏡像制作方法是什么

發布時間:2022-01-21 10:15:24 來源:億速云 閱讀:116 作者:柒染 欄目:開發技術

Docker鏡像制作方法是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Docker Image 的制作兩種方法

方法 1:docker commit #保存 container 的當前狀態到 image 后,然后生成對應的 image方法 2:docker build #使用 Dockerfile 文件自動化制作 image

方法一:

docker commit

創建一個安裝好 apache 工具的容器鏡像

[root@Docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos              latest              470671670cac        4 months ago        237MB[root@Docker ~]# docker psCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES[root@Docker ~]# docker run -it centos:latest /bin/bash[root@1b96e68a3cce /]#[root@1b96e68a3cce /]# yum -y install httpd #在 container 中安裝 apache 軟件包[root@1b96e68a3cce /]# exit


查看 images 列表

[root@Docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos              latest              470671670cac        4 months ago        237MB


根據容器當前狀態做一個 image 鏡像:創建一個安裝了 apache 工具的 centos 鏡像

語法:docker commit “container 的 ID” 或 “image_name”

查看容器 ID

[root@Docker ~]# docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES1b96e68a3cce        centos:latest       "/bin/bash"              3 minutes ago       Exited (0) 2 minutes ago                          awesome_hypatia607752360adf        centos:latest       "/bin/bash -c 'while…"   18 minutes ago      Exited (137) 12 minutes ago                       brave_fermi0a297ff99af8        centos:latest       "/bin/bash"              22 minutes ago      Exited (1) 20 minutes ago                         ecstatic_yonathefb4af688330        centos:latest       "/bin/bash"              24 minutes ago      Exited (0) 23 minutes ago                         epic_mcclintock[root@Docker ~]# docker commit 1b96e68a3cce centos:apachesha256:b8822ec8a7bbb325793e7908e355180be82a49481cff197661fb5d0da5872e88[root@Docker ~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos              apache              b8822ec8a7bb        9 seconds ago       280MBcentos              latest              470671670cac        4 months ago        237MB


使用新創建的 centos:apache 鏡像,生成一個容器實例

[root@Docker ~]# docker run -it centos:apache /bin/bash[root@e4c295d27581 /]# rpm -qa httpdhttpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64


看到httpd軟件名稱說明基于 apache 鏡像的容器創建成功

方法二:

通過:docker build 創建一個基于 centos 的 httpd web 服務器鏡像

使用 docker build 創建鏡像時,需要使用 Dockerfile 文件自動化制作 image 鏡像
Dockerfile 有點像源碼編譯時./configure 后產生的 Makefile

1、創建工作目錄、

[root@liangxu ~]# mkdir /docker-build[root@liangxu ~]# cd /docker-build[root@liangxu]# touch Dockerfile[root@liangxu]# lsDockerfile注:make 自動化編譯時需要 Makefile 文件,自動化創建 docker 鏡像時,需要 Dockerfile


2、編輯 Dockerfile

Dockerfile 用來創建一個自定義的 image,包含了用戶挃定的軟件依賴等。[root@liangxu ]# vim DockerfileFROM centos:latestMAINTAINERRUN yum -y install httpdADD start.sh /usr/local/bin/start.shADD index.html /var/www/html/index.htmlCMD echo hello world


注釋

FROM centos:latest # FROM 基于哪個鏡像MAINTAINER# MAINTAINER 鏡像創建者RUN yum -y install httpd #RUN 安裝軟件用ADD start.sh /usr/local/bin/start.shADD index.html /var/www/html/index.html# ADD 將文件拷貝到新產生的鏡像的文件系統對應的路徑。所有拷貝到新鏡像中的文件和文件夾權限為 0755,uid 和 gid 為 0CMD echo hello world #container 啟動時執行的命令或啟動服務,但是一個 Dockerfile 中只能有一條 CMD 命令,有多條則另執行最后一條 CMD


3、創建 start.sh 腳本啟動 httpd 服務和 apache 默認首頁 index.html 文件

[root@liangxu ]# echo "#!/bin/bash" >> start.sh[root@Docker docker-build ]# echo "/usr/sbin/httpd -DFOREGROUND" >> start.sh注:/usr/sbin/httpd -DFOREGROUND 相當于執行了 systemctl start httpd[root@liangxu ]# chmod a+x start.sh創建 index.html[root@liangxu ]# echo "docker image build  test from jaking" > index.html


4、使用命令 build 來創建新的 image

語法:docker build -t 父鏡像名:鏡像的 tag Dockerfile 文件所在路徑
-t :表示 tag,鏡像名

例:使用命令 docker build 來創建新的 image,并命名為 centos:httpd

[root@liangxu]# lsDockerfile  index.html  start.sh[root@Docker docker-build]# docker build -t centos:httpd ./# 注:./ 表示當前目錄,另外你的當前目錄下要包含 DockerfileSending build context to Docker daemon  4.096kBStep 1/5 : FROM centos:latest ---> 470671670cacStep 2/5 : MAINTAINER ---> Running in 0180810d2ab3Removing intermediate container 0180810d2ab3 ---> 5b9af0184bcfStep 3/5 : RUN yum -y install httpd ---> Running in 8f5c114649edCentOS-8 - AppStream                            228 kB/s | 7.0 MB     00:31CentOS-8 - Base                                 547 kB/s | 2.2 MB     00:04CentOS-8 - Extras                               431  B/s | 5.9 kB     00:14Dependencies resolved.================================================================================ Package           Arch   Version                               Repo       Size================================================================================Installing: httpd             x86_64 2.4.37-16.module_el8.1.0+256+ae790463 AppStream 1.7 MInstalling dependencies: apr               x86_64 1.6.3-9.el8                           AppStream 125 k apr-util          x86_64 1.6.1-6.el8                           AppStream 105 k centos-logos-httpd                   noarch 80.5-2.el8                            AppStream  24 k ...省略部分輸出信息...Complete!Removing intermediate container 8f5c114649ed ---> 040b5f229962Step 4/5 : ADD start.sh /usr/local/bin/start.sh ---> 11a106005031Step 5/5 : ADD index.html /var/www/html/index.html ---> 85b4a3657cedSuccessfully built 85b4a3657cedSuccessfully tagged centos:httpd


查看 images 列表

[root@liangxu]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEcentos              httpd               85b4a3657ced        45 seconds ago      280MBcentos              apache              b8822ec8a7bb        20 minutes ago      280MBcentos              latest              470671670cac        4 months ago        237MB# 注:docker 鏡像=應用/程序+庫


運行新生成的鏡像

[root@liangxu]# docker run -it centos:httpd /bin/bash[root@liangxu /]# lsbin  etc   lib    lost+found  mnt  proc  run   srv  tmp  vardev  home  lib64  media       opt  root  sbin  sys  usr[root@liangxu /]# rpm -qa httpdhttpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64[root@liangxu /]# exitexit[root@liangxu]#

看完上述內容,你們掌握Docker鏡像制作方法是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

太仓市| 石林| 华宁县| 临漳县| 康保县| 营山县| 桦甸市| 五指山市| 扎赉特旗| 会昌县| 湘潭县| 宁海县| 石景山区| 陈巴尔虎旗| 全州县| 巴塘县| 交城县| 招远市| 岑溪市| 铁岭市| 上高县| 辉县市| 华安县| 洛扎县| 孝义市| 海城市| 元江| 酒泉市| 溆浦县| 崇州市| 汾阳市| 黄大仙区| 浪卡子县| 黑水县| 营口市| 隆子县| 德清县| 万山特区| 金门县| 普宁市| 治多县|