filelinux
Docker
Docker鏡像的首行從FROM alpine之類的鏡像開始,可是最初的基礎鏡像是如何建立的,本文使用一個busybox建立一個基礎鏡像,相信在此過程當中會對docker一些相關的概念有進一步的理解。docker
什麼是基礎鏡像(base image)
簡單來講,基礎鏡像就是沒有From或者FROM scratch開頭的Dockerfile所構建出來的鏡像。好比alpine,這個很小的linux鏡像目前只有4M左右ubuntu
Docker經常使用鏡像選擇
由於Docker鏡像是基於基礎鏡像來構建的,所以選擇的基礎鏡像越高級,咱們要作的底層工做就越少。centos
好比,若是構建一個Java應用的鏡像,選擇一個openjdk的鏡像做爲基礎鏡像比選擇一個alpine鏡像做爲基礎鏡像要簡單地多。bash
Docker鏡像官網
Docker鏡像官網(Docker Hub): https://hub.docker.com測試
阿里雲容器Hub:https://dev.aliyun.comui
Google鏡像(gcr.io):https://console.cloud.google.com/gcr/images/google-containers/GLOBAL (主要爲Kubernetes相關鏡像)google
操做系統基礎鏡像
好比你要從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