日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

系统制成docker镜像_docker镜像原理 镜像制作 dockerfile

發布時間:2023/12/1 windows 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 系统制成docker镜像_docker镜像原理 镜像制作 dockerfile 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么一個centos鏡像只有兩百多兆,而tomcat鏡像五百多兆

1.先說說操作系統

操作系統組成部分:

進程調度子系統

進程通信子系統

內存管理子系統

設備管理子系統

文件管理子系統

網絡通信子系統

作業控制子系統

Linux文件系統由bootfs和rootfs兩部分組成

bootfs:包含bootloader(引導加載程序)和 kernel(內核)

rootfs: root文件系統,包含的就是典型 Linux 系統中的/dev,/proc,/bin,/etc等標準目錄和文件

不同的linux發行版,bootfs基本一樣,而rootfs不同,如ubuntu,centos等

2.而Docker鏡像是由特殊的文件系統疊加而成

最底端是 bootfs,并使用宿主機的bootfs-復用

第二層是 root文件系統rootfs,稱為base image

然后再往上可以疊加其他的鏡像文件

統一文件系統(Union File System)技術能夠將不同的層整合成一個文件系統,為這些層提供了一個統一的視角,隱藏多層的存在,我們看來只是存在一個文件系統。

所以當我們安裝的tomcat鏡像大小是五百多兆 是因為里面還包含了jdk和centos的鏡像

而centos鏡像復用了宿主機的bootfs 下載的只有rootfs 所以小很多

一個鏡像可以放在另一個鏡像的上面。位于下面的鏡像稱為父鏡像,最底部的鏡像成為基礎鏡像。

所以tomcat-》jdk(父鏡像)-》centos(基礎鏡像) 所以整個向外暴露就是五百多兆

鏡像只讀 當從一個鏡像啟動容器時, 所以docker會在鏡像上面加載一個可讀可寫的文件系統作為容器

docker鏡像本質就是一個分層系統

3.鏡像制作 注意容器轉鏡像 容器里面文件不會消失 但是容器掛載的鏡像卷會消失

容器轉為鏡像 docker commit 容器id 鏡像名稱:版本號

鏡像壓縮(鏡像不能傳輸 所以做好的鏡像) docker save -o 壓縮文件名稱 鏡像名稱:版本號

鏡像壓縮文件解壓成鏡像 docker load -i 壓縮文件名稱

3.dockerfile

docker就是一個文本文件 包含了一條條的指令

每一條指令構建一層,基于基礎鏡像,最終構建出一個新的鏡像

為開發、測試。運維提供完全一致的開發環境 只需要通過一個dockerfile文件構建出相同的鏡像

4.dockerfile關鍵字

FROM 指定父鏡像 基于哪個鏡像image構建

RUN 容器創建的時候執行一段命令

CMD 容器啟動的時候執行的命令

COPY 創建容器是復制文件到鏡像

ADD 添加文件到鏡像還會自動解壓 還可以添加遠程的

ENV 設置環境變量 啟動容器時 -e參數可以覆蓋ENV設置的環境變量

VOIUME 啟動容器時掛載目錄到容器里面

EXPOSE 暴露端口

WORKDIR 設置進入容器時的路徑

案例:需求 自定義一個centos7鏡像 默認登錄路徑為/usr 并且可以使用vim

定義父鏡像:FROM centos:7

定義作者信息:MAINTAINER itheima

執行安裝vim命令: RUN yum install -y vim

定義默認的工作目錄:WORKDIR /usr

定義容器啟動執行的命令:CMD /bin/bash

通過dockerfile構建鏡像:docker bulid –f dockerfile文件路徑 –t 鏡像名稱:版本

docker build -f ./centos_docker(dockerfile文件) -t mycentos:1.1(鏡像名稱和版本號) .(尋址路徑)

案例:java程序做成一個鏡像

1.先package 打包成jar包 hello.jar

2.創建一個hello_dockerfile 寫入下面數據

定義父鏡像:FROM java:8

定義作者信息:MAINTAINER itheima

將jar包添加到容器: ADD hello.jar app.jar

定義容器啟動執行的命令:CMD java –jar app.jar

通過dockerfile構建鏡像:docker bulid –f dockerfile文件路徑 –t 鏡像名稱:版本

總結

以上是生活随笔為你收集整理的系统制成docker镜像_docker镜像原理 镜像制作 dockerfile的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。