Docker
Docker鏡像的首行從FROM alpine之類的鏡像開始,但是最初的基礎鏡像是如何創建的,本文使用一個busybox創建一個基礎鏡像,相信在此過程中會對docker一些相關的概念有進一步的理解。
什麼是基礎鏡像(base image)
簡單來說,基礎鏡像就是沒有From或者FROM scratch開頭的Dockerfile所構建出來的鏡像。比如alpine,這個很小的linux鏡像目前只有4M左右
Docker常用鏡像選擇
因爲Docker鏡像是基於基礎鏡像來構建的,因此選擇的基礎鏡像越高級,我們要做的底層工作就越少。
比如,如果構建一個Java應用的鏡像,選擇一個openjdk的鏡像作爲基礎鏡像比選擇一個alpine鏡像作爲基礎鏡像要簡單地多。
Docker鏡像官網
Docker鏡像官網(Docker Hub): https://hub.docker.com
阿里雲容器Hub:https://dev.aliyun.com
Google鏡像(gcr.io):https://console.cloud.google.com/gcr/images/google-containers/GLOBAL (主要爲Kubernetes相關鏡像)
操作系統基礎鏡像
比如你要從Linux操作系統基礎鏡像開始構建,可以參考下表來選擇合適的基礎鏡像:
鏡像名稱 | 大小 | 使用場景 |
---|---|---|
busybox | 1.15MB | 臨時測試用 |
alpine | 4.41MB | 主要用於測試,也可用於生產環境 |
centos | 200MB | 主要用於生產環境,支持CentOS/Red |
ubuntu | 81.1MB | 主要用於生產環境,常用於人工智能計算和企業應用 |
debian | 101MB | 主要用於生產環境 |
構建鏡像
使用命令 docker build ,來創建一個新的鏡像。因此我們需要創建一個 Dockerfile 文件,其中包含一組指令來告訴 Docker 如何構建我們的鏡像。
我們可以根據需求選擇合適的基礎鏡像來構建我們需要的鏡像文件
Dockerfile
FROM centos:6.7
WORK test
ADD . .
EXPOSE 8080
CMD ['test']
如何使用鏡像
- 使用docker run運行鏡像文件:
當我們單獨管理一個鏡像文件時,推薦這種方式,可以簡單快捷運行已打包的鏡像 - 使用docker-compose運行鏡像文件:
當需要集中管理多個鏡像文件時,推薦這種方式,可以更好的集中管理所有的鏡像文件
進入容器操作
-
docker exec -it test_image /bin/sh
-
docker exec -it test_image bash
-
docker exec -it test_image sh