Docker打包映象的兩種方式
前言
Docker映象是一個特殊的檔案系統,既提供了執行時所需的程式、庫和資源,還提供了相應的配置引數,只是不包含動態資料。我們可以將任何我們的軟體產品打包成映象,以供伺服器能夠用Docker直接快速安裝並部署執行。
System:Linux(CentOS 7)
Docker Version:19.03.12
構建Image
通過Dockerfile
通過編寫Dockerfile檔案,Dockerfile示例如下:
FROM ubuntu:18.04
COPY . /app
RUN make /app
CMD python /app/app.py
每條指令建立一層:
FROM
從ubuntu:18.04
Docker映象建立一個圖層。COPY
從Docker客戶端的當前目錄新增檔案。RUN
通過make
構建您的應用程式。CMD
指定在容器中執行什麼命令。
執行映象生成容器時,可以在基礎層之上新增一個新的可寫層(“容器層”)。對執行中的容器所做的所有更改(例如寫入新檔案,修改現有檔案和刪除檔案)都將寫入這層薄的但是可寫的容器層。
然後執行命令docker build生成映象,如下
docker build -t myUbuntu:v1.0 .
通過docker commit
當我們覺得某個執行中的容器特別好用,就想把它保留起來,這時候我們可以通過docker build指令將這個執行中的容器構建成一個映象,然後在其他電腦上也可以使用了;
還有就是針對容器進行改造,通過把一個執行中的容器通過增刪改檔案或者安裝解除安裝一個程式改造成自己心儀的容器,然後通過命令列生成對應的映象檔案;
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS說明:
- -a :提交的映象作者;
- -c :使用Dockerfile指令來建立映象;
- -m :提交時的說明文字;
- -p :在commit時,將容器暫停。
映象的使用者許可權
這裡強調一個點,所有的映象在構建的時候如果在Dockerfile不指定uid,那麼執行成容器的時候都會預設生成使用者許可權為uid為 0,其實就是相當於root許可權。
就會出現你以普通使用者執行的一個掛載目錄的容器,它操作過的目錄,你在宿主機會無法操作的問題;
相關文章
- Java(SpringBoot)專案打包(構建)成`Docker`映象的幾種方式JavaSpring BootDocker
- 兩種github action 打包.Net Core 專案docker映象推送到阿里雲映象倉庫GithubDocker阿里
- SpringBoot 構建 Docker 映象的最佳 3 種方式Spring BootDocker
- 在 NetBeans 中打包 Maven 專案的兩種方式BeanMaven
- docker - [15] springboot微服務打包docker映象DockerSpring Boot微服務
- docker 打包映象推送至dockerhubDocker
- SpringBoot 微服務打包 Docker 映象Spring Boot微服務Docker
- IDEA如何用maven打包(介面和命令兩種方式)IdeaMaven
- webapi透過docker部署到Linux的兩種方式WebAPIDockerLinux
- ChatTTS的兩種使用方式TTS
- kubernetes實戰篇之docker映象的打包與載入Docker
- 使用docker buildx打包釋出多平臺映象DockerUI
- JS 垃圾回收的兩種方式JS
- CommonJS的兩種匯出方式JS
- springboot使用webSocket的兩種方式Spring BootWeb
- 建立Session物件的兩種方式Session物件
- AUTOCAD——兩種延伸方式
- 如何打包Docker映象並推送到遠端倉庫Docker
- zabbix agent 的兩種安裝方式
- Native 工程整合Flutter 的兩種方式Flutter
- 安裝aab包的兩種方式
- HTTP代理的兩種連線方式HTTP
- 隱藏元素兩種方式
- php 與 nginx 的兩種處理方式PHPNginx
- React元件方法的兩種定義方式React元件
- ubuntu建立使用者的兩種方式Ubuntu
- java 傳遞引數的兩種方式Java
- SpringBoot 使用ApplicationContext 及 getbean的兩種方式Spring BootAPPContextBean
- java json格式化的兩種方式JavaJSON
- Java鍵盤錄入的兩種方式Java
- Python進行開發的兩種方式Python
- 兩種go傳送郵件的方式Go
- BI系統打包Docker映象及容器化部署的具體實現Docker
- docker/kubernetes國內源/映象源解決方式Docker
- 兩個修改Docker本地映象與容器的儲存位置的方法Docker
- 構建 Go 應用 docker 映象的十八種姿勢GoDocker
- 在springboot中使用Mybatis Generator的兩種方式Spring BootMyBatis
- 動態代理的兩種方式以及區別