獲取Image的三種方式:
- 從Registry取得Image – registry
- public(公開的,任何人都可以使用)
- private(私有)
- 文件導入(可離線時使用)
- 從Dockerfile建造
從Registry取得Image
如果沒有提供registry名稱的話,預設是從DockerHub取得。
如果不指定的話會下載lates。
docker image pull nginx
如果想指定版本的話就加入:tag名稱
docker image pull nginx:1.20.1
查看已下載的Image
docker image ls
顯示Image的相關訊息
docker image inspect IMAGE_ID
刪除Image
如果有容器正在使用,無論是運行中或是關閉狀態,會無法刪除。
docker image rm IMAGE_ID
文件導入Image
其他兩種都是要在有網路的狀況下才可以使用,若是電腦沒有網路的話,可以使用導入的方式。
建構Image指令如下:
docker image save nginx[:版本] -o 檔案名稱
導入Image
docker image load -i 檔案路徑
從Dockerfile建造
將下方兩個檔案存在同一個資料夾:
檔名:hello.py
print("Hello this python!")
檔名:dockerfile
FROM ubuntu:20.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y python3.9 python3-pip python3.9-dev
ADD hello.py /
CMD ["python3", "/hello.py"]
我把這兩個檔案放在名為coding的資料夾裡面。
接下來從dockerfile建構Image:
- -t :替image命名所需帶入
docker image build -t hello dockerfile路徑
docker image ls # 查看是否有名為hello的image
下圖紅框是我們想要為這個image的命名。
黃框是dockerfile的路徑。
docker run -it hello
看看有沒有顯示hello.py的字串。