Docker是一個開源項目,可以幫助開發者輕松地封裝自己的應用程序或服務,并將其與操作系統隔離開來。在Docker中,鏡像是一個輕量級的運行時環境,可以在其中運行應用程序或服務。與虛擬機不同,鏡像是以分層的方式構建的,每一層都可以被重用或更新。
要創建一個自定義的Docker鏡像,你可以從現有的鏡像,例如官方的Docker鏡像庫中的鏡像中開始。你可以在一個名為Dockerfile的文本文件中定義步驟來構建自己的鏡像。
# 基于官方的python:3.7鏡像構建自己的鏡像 FROM python:3.7 # 設定工作目錄 WORKDIR /app # 將當前目錄中的所有文件復制到容器的/app目錄中 COPY . /app # 安裝應用程序的依賴 RUN pip install --no-cache-dir -r requirements.txt # 在啟動容器時運行應用程序 CMD ["python", "app.py"]
在該Dockerfile中,我們首先指定要使用的基礎鏡像,然后將工作目錄設置為/app,并將本地應用程序的所有文件復制到該目錄。接下來,我們使用RUN命令執行任何必要的依賴項安裝,例如在該例子中使用pip來安裝requirements.txt的依賴項。最后,使用CMD命令定義啟動容器時要運行的應用程序。
一旦你定義了Dockerfile,你可以使用以下命令在當前目錄中構建鏡像:
$ docker build -t myimage .
該命令將構建名為myimage的鏡像,并將其標記為“ . ”,表示當前目錄。你可以使用以下命令查看你的新鏡像:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE myimage latest 94f39e0c62d7 5 seconds ago 928MB python 3.7 1d3eb3f6b670 3 days ago 906MB
在你的Docker Hub或私有注冊表等容器鏡像倉庫中上傳和存儲該鏡像:
$ docker tag myimage username/myimage $ docker push username/myimage
該命令將鏡像重新標記為username/myimage,并將其上傳到Docker Hub。現在,你可以在任何地方運行你的應用程序使用該鏡像。