Docker——映象管理
文章目錄
一、構建自定義映象的方式
1、Dockerfile建立步驟
- Dockerfile(基於源映象修改配置,用dockerfile生成自己需要的映象),用於新業務
建立步驟
1、在虛擬機器新建目錄,編寫Dockerfile檔案(下面對檔案格式舉例介紹)
mkdir /apache
cd apache
vim Dockerfile #注意:這裡的檔名必須是Dockerfile,不可以更改
#基於基礎映象
FROM centos:7
#維護映象的使用者資訊
MAINTAINER this is test
#映象操作指令安裝apache軟體
RUN yum -y update
RUN yum -y install httpd
#開啟80埠
EXPOSE 80
#複製網站首頁檔案
ADD index.html /var/www/html/index.html #稍後編寫index.html檔案放在同一目錄下
#將執行指令碼複製到映象中
ADD run.sh /run.sh #啟動指令碼放在同一目錄下
RUN chmod 775 /run.sh
#啟動容器時執行指令碼
CMD ["/run.sh"]
2、在Dockerfile檔案裡不能使用systemctl、service等命令啟動服務,可以編寫一個run.sh指令碼
vim run.sh #啟動指令碼
#!/bin/bash
rm -rf /run/httpd/* #清理httpd的快取
exec /usr/sbin/apachectl -D FOREGROUND #啟動apache程式
3、建立新映象
echo "this is web" > index.html
#生成映象
格式:docker build -t 倉庫名稱:[標籤].
docker build -t httpd:centos . (注意別忘了末尾有".")
執行新映象容器
#新映象執行容器
格式:docker run -d --name 名字 -p 埠:源埠 倉庫名稱:[標籤]
docker run -d --name web1 -p 1216:80 httpd:centos
測試:用虛擬機器瀏覽器訪問宿主IP
2、Docker 映象的分層:
-
Dockerfile 中的每個指令都會建立一個新的映象層;
-
映象層將會被快取和複用;
-
當 Dockerfile 的指令修改了,複製的檔案變化了,或者構建映象時指定的變數不同了,對應的映象層快取就會失效;
-
某一層的映象快取失效之後,它之後的映象層快取都會失效;
-
映象層是不變的,如果在某一層中新增一個檔案,然後在下一層中刪除它,則映象中依然包含該檔案。
-
Docker 映象:
是應用分佈的標準格式;
可支撐一個 Docker 容器的執行;
3.Dockerfile 操作指令:
指令 | 含義 |
---|---|
FROM映象 | 指定新映象所基於的映象,第一條指令必須為FROM指令每建立一個映象就需要-條FROM指令 |
MAINTAINER名字 | 說明新映象的維護人資訊 |
RUn命令 | 在所基於的映象上執行命令,並提交到新的映象中 |
CMD[“要執行的程式"引數1,"引數2 "] | 指令啟動容器時要執行的命令或者指令碼,Dockerfile只能有一條CMD命令,如果指定多條則只能最後一條被執行 |
EXPOSE埠號 | 指定新映象載入到Docker時要開啟的埠 |
ENV環境變數變數值 | 設定一個環境變數的值, 會被後面的RUN使用 |
ADD原始檔/目錄目標檔案/目錄 | 將原始檔複製到目標檔案,原始檔要與Dockerfile位於相同目錄中,或者是一個URL |
COPY原始檔/目錄目標檔案/目錄 | 將本地主機上的檔案/目錄複製到目標地點,原始檔/目錄要與Dockerfile在相同的目錄中 |
VOLUME[“目錄"] | 在容器中建立一個掛載點 |
USER使用者名稱/UID | 指定執行容器時的使用者 |
WORKDIR路徑 | 為後續的RUN、 CMD、ENTRYPOINT指定工作目錄 |
ONBUILD命令 | 指定所生成的映象作為一 個基礎映象時所要執行的命令 |
HEALTHCHECK | 健 康檢查 |
2、基於已有的映象容器進行建立,常用在業務升級。
1:將容器裡面執行的程式及執行環境打包生成新的映象
docker commit [選項] 容器ID/名稱 倉庫名稱:[標籤]
-m:說明資訊
-a:作者資訊
//建立容器
docker run -it centos:7 /bin/bash
docker commit -m "new" -a "daoke" 容器ID daoke:centos
3、基於本地模板進行構建(使用極少)
cat debian-7.0-x86-minimal.tar.gz | docker import - daoke: debian
Docker 映象:
是應用分佈的標準格式;
可支撐一個 Docker 容器的執行;
相關文章
- Docker筆記(四):Docker映象管理Docker筆記
- 【Docker】第二篇 Docker映象管理Docker
- Docker映象管理快速入門Docker
- 【docker專欄5】詳解docker映象管理命令Docker
- Docker | Docker技術基礎梳理(二) - 映象管理Docker
- 使用Travis在Docker Hub上管理開源Docker映象Docker
- 實踐:Docker容器與映象管理Docker
- docker 映象Docker
- Docker 映象源Docker
- docker 映象加速Docker
- Docker私有映象Docker
- yamlapi docker 映象YAMLAPIDocker
- 聊聊Docker映象Docker
- Docker(五)Docker映象講解Docker
- docker映象瘦身方法Docker
- 製作Docker映象Docker
- 2、docker映象操作Docker
- docker映象瘦身思路Docker
- Docker 映象講解Docker
- docker 儲存映象Docker
- docker建立beego映象DockerGo
- [雲原生]Docker - 映象Docker
- docker構建映象Docker
- docker系列(二):映象Docker
- Docker 映象加速教程Docker
- docker映象遷移Docker
- Docker映象細節Docker
- 【docker】docker映象匯出匯入Docker
- docker學習4:Docker 映象使用Docker
- 在python專案的docker映象裡使用pdm管理依賴PythonDocker
- HGDBV5.6.5資料庫Docker映象安裝啟動管理資料庫Docker
- Docker(十三)-Docker save and load映象儲存Docker
- docker - [15] springboot微服務打包docker映象DockerSpring Boot微服務
- docker構建supervisor映象Docker
- docker 映象中的uidDockerUI
- YashanDB Docker映象製作Docker
- oracle製作docker映象OracleDocker
- docker無法拉取映象Docker