Docker - 容器和主機
大家好,對技術充滿熱情的同好們!我很興奮能與你們一起踏上Docker的旅程。作為一位具有多年經驗的虛擬老師,我將引導你們進入容器和主機的精彩世界。別擔心你們對編程是新手——我們會從基礎開始,逐步提升。我們來開始吧!
Docker 鏡像
想像你正在為旅行打包。你會列出一個所需物品的清單,對吧?Docker鏡像正是這樣的東西——它是容器運行所需一切的藍圖。這就像是你應用程序的菜譜,包括代碼、運行時環境、庫和系統工具。
創建你的第一個 Docker 鏡像
我們來為一個 "Hello, World!" 應用程序創建一個簡單的 Docker 鏡像:
# Dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY . /app
CMD ["python", "hello.py"]
現在,讓我們分解一下:
-
FROM python:3.9-slim
:這就像說,“我想從一個最小化的 Python 3.9 環境開始。” -
WORKDIR /app
:我們正在設置我們的工作空間,就像為我們的項目創建一個新文件夹。 -
COPY . /app
:我們正在將我們的本地文件複製到容器中。 -
CMD ["python", "hello.py"]
:這是我們啟動容器時將運行的命令。
要建立這個镜像,我們會運行:
docker build -t my-hello-world .
執行容器
現在有了我們的镜像,讓我們讓它活起來!運行一個容器就像啟動一個預先加載了你應用程序的虛擬計算機。
基本容器運行
docker run my-hello-world
這個命令將根據我們的 my-hello-world
镜像啟動一個容器,並運行 hello.py
腚本。
交互模式
有時候,你想要與你的容器交互。這就像在容器內直接打開終端:
docker run -it my-hello-world /bin/bash
-it
标志使容器交互式,而 /bin/bash
開始一個 bash shell。
列出所有容器
當你使用 Docker 時,你會創建多個容器。跟踪它們是很重要的。這就像檢查你的計算机上目前運行哪些應用程序。
docker ps
這個命令顯示所有運行的容器。要看所有容器,包括停止的容器:
docker ps -a
這裡有一個 docker ps
選項的便捷表格:
選項 | 描述 |
---|---|
-a, --all | 顯示所有容器(默認只顯示運行的) |
-q, --quiet | 只顯示容器 ID |
-s, --size | 顯示總文件大小 |
--format | 使用 Go 模板優雅地打印容器 |
停止容器
就像在計算機上關閉應用程序一樣,當你完成使用時,你可以停止 Docker 容器。
温和停止
docker stop <container_id>
這會發送一個 SIGTERM 訊號,讓容器溫和關閉。
強制停止
docker kill <container_id>
這就像強制退出應用程序。當 docker stop
不起作用時使用它。
移除容器
停止容器後,你可能想要完全移除它:
docker rm <container_id>
小貼士:你可以將停止和移除結合在一個命令中:
docker rm -f <container_id>
總結
恭喜你們!你們已經踏出了進入 Docker 容器和主機世界的第一步。記住,使用 Docker 就像管理一群微小、專業的計算機。每個容器都是一個自給自足的環境,準備在任何系統上的一致性運行你的應用程序。
在我們結束之前,這裡有一個有趣的比喻:Docker 容器就像食物車。每輛車(容器)都有制作和提供其特色菜(運行你的應用程序)所需的一切。你可以輕鬆地將這些車輛移動、啟動它們,或者在需要時將它們收起來。
在我們的下一課中,我們將深入探討 Docker 的網絡和數據持久性。到那時為止,快樂地容器化吧!
Credits: Image by storyset