Docker 是一種虛擬化技術,它可以在一個操作系統中運行多個應用程序,各自獨立、安全、可靠,且互不干擾。相較于傳統的虛擬機技術,Docker 運行速度更快,資源占用更少,且更易于管理、部署。
Docker 的核心思想是將應用程序打包成稱為鏡像的文件,鏡像包含應用程序及其運行時需要的庫、配置等資源。鏡像通過 Docker Hub 或其他私有倉庫進行共享、管理。開發人員可以創建應用程序鏡像,并將其發布到倉庫,運維人員可以從倉庫中獲取鏡像,并在各個服務器上部署應用程序。
# Dockerfile 示例 FROM node:14-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"]
Dockerfile 是用來構建鏡像的腳本文件,每個鏡像都有一個對應的 Dockerfile。Dockerfile 文件中包含創建鏡像所需的指令,例如 FROM、RUN 和 CMD 等。使用 docker build 命令可以根據 Dockerfile 構建出鏡像。
除了鏡像之外,Docker 還有容器的概念。容器是鏡像的運行實例,可以理解為一個輕量級的虛擬機。容器中包含了一個運行的應用程序、其依賴的庫、配置等資源。開發人員可以通過 Docker 容器快速搭建開發環境,運維人員可以通過容器在不同服務器上部署應用程序。
# 容器運行示例 docker run -d --name myapp -p 80:3000 myapp:latest
使用 docker run 命令可以創建并運行容器。參數 -d 表示以守護進程方式運行容器,--name 指定容器的名稱,-p 指定端口映射關系(將容器內部的 3000 端口映射到主機的 80 端口),myapp 指定容器鏡像的名稱,latest 是鏡像的標簽。