Docker是一個用於在容器內開發、運輸和執行應用程式的平台。它為軟體開發和部署提供了一個輕量級、可移植且一致的環境。本指南涵蓋了從初級到高級的基本 Docker 命令,幫助 DevOps 工程師有效管理其容器化應用程式。
在深入了解這些指令之前,我們先回顧一些基本的 Docker 概念:
圖片:一個輕量級的、獨立的、可執行的包,包含執行軟體所需的一切。
容器:Docker 映像的執行時實例。
Dockerfile :包含一系列有關如何建置 Docker 映像的說明的腳本。
Docker Compose :用於定義和執行多容器 Docker 應用程式的工具。
docker --version
顯示已安裝的 Docker 版本。
docker images
列出本機上的所有 Docker 映像。
docker pull <image_name>
從註冊表(例如 Docker Hub)中提取 Docker 映像。
docker rmi <image_name>
從本機電腦中刪除 Docker 映像。
docker ps
列出所有正在執行的 Docker 容器。
docker ps -a
列出所有 Docker 容器,包括已停止的容器。
docker run -d --name <container_name> <image_name>
以分離模式從 Docker 映像執行容器。
docker stop <container_name>
停止正在執行的 Docker 容器。
docker start <container_name>
啟動已停止的 Docker 容器。
docker rm <container_name>
刪除 Docker 容器。
docker logs <container_name>
顯示Docker容器的日誌。
docker network ls
列出所有 Docker 網路。
docker network create <network_name>
建立一個新的 Docker 網路。
docker network connect <network_name> <container_name>
將容器連接到 Docker 網路。
docker network disconnect <network_name> <container_name>
中斷容器與 Docker 網路的連線。
docker volume ls
列出所有 Docker 磁碟區。
docker volume create <volume_name>
建立一個新的 Docker 磁碟區。
docker volume rm <volume_name>
刪除 Docker 磁碟區。
docker run -d --name <container_name> -v <volume_name>:/path/in/container <image_name>
將 Docker 磁碟區安裝到容器。
sudo curl -L "https://github.com/docker/compose/releases/download/<version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
安裝 Docker Compose。
docker-compose --version
顯示已安裝的 Docker Compose 版本。
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
使用 Docker Compose 定義多容器應用程式。
docker-compose up -d
以分離模式執行 Docker Compose 應用程式。
docker-compose down
停止並刪除 Docker Compose 應用程式。
# Use an official Python runtime as a parent image
FROM python:3.8-slim
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
# Define environment variable
ENV NAME World
# Run app.py when the container launches
CMD ["python", "app.py"]
為 Python 應用程式定義 Dockerfile。
docker build -t <image_name> .
從 Dockerfile 建立 Docker 映像。
docker swarm init
初始化 Docker Swarm。
docker node ls
列出 Docker Swarm 中的所有節點。
docker stack deploy -c <compose-file> <stack_name>
在 Docker Swarm 中部署堆疊。
docker stack rm <stack_name>
從 Docker Swarm 中刪除堆疊。
echo "my_secret_value" | docker secret create <secret_name> -
建立一個新的 Docker 秘密。
docker secret ls
列出所有 Docker 秘密。
docker secret rm <secret_name>
刪除 Docker 秘密。
docker inspect <container_name>
顯示有關 Docker 容器的詳細資訊。
docker inspect <image_name>
顯示有關 Docker 映像的詳細資訊。
docker stats <container_name>
顯示 Docker 容器的即時統計資訊。
docker events
顯示來自 Docker 伺服器的即時事件。
docker export <container_name> -o <file_name>.tar
將 Docker 容器匯出到 tar 檔案。
docker import <file_name>.tar
從 tar 檔案匯入容器。
docker save -o <file_name>.tar <image_name>
將 Docker 映像儲存到 tar 檔案。
docker load -i <file_name>.tar
從 tar 檔案載入 Docker 映像。
docker system prune
刪除未使用的 Docker 資料(映像、容器、網路、磁碟區)。
docker context ls
列出所有 Docker 上下文。
docker context create <context_name>
建立一個新的 Docker 上下文。
docker context use <context_name>
切換到特定的 Docker 上下文。
export DOCKER_BUILDKIT=1
docker build -t <image_name> .
啟用 Docker BuildKit 以提高建置效能。
掌握 Docker 命令(從初級到高級)對於 DevOps 工程師有效管理和自動化容器化應用程式至關重要。這份綜合指南可作為您駕馭 Docker 環境的寶貴參考。透過遵循最佳實踐並利用這些命令,您可以確保強大且高效的容器編排設定。
快樂 Docker 化! 🎉
感謝您閱讀我的部落格 …:)
©版權所有: ProDevOpsGuy
原文出處:https://dev.to/prodevopsguytech/docker-commands-from-beginner-to-advanced-for-devops-engineers-bb3