介绍Docker 是一个开源的应用容器引擎，基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中，然后发布到任何流行的 Linux 机器上，也可以实现虚拟化。容器是完全使用沙箱机制，相互之间不会有任何接口（类似 iPhone 的 app）,更重要的是容器性能开销极低。核心概念Image（镜像）镜像基于分层文件系统构建（Layered Filesystem），由多个只读层叠加组成，用于描述应用的运行时环境。Container（容器）容器是镜像的可运行实例，是一种轻量化、可移植、隔离的进程运行环境。Registry（镜像仓库）用于分发镜像，如 Docker Hub、阿里云 ACR、Harbor 等。Volume（持久化卷）用于持久存储容器外部化数据，避免容器删除导致数据丢失。Ubuntu安装 复制 sudo apt update sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \ | sudo tee /etc/apt/sources.list.d/docker.list sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo systemctl enable --now docker Centos安装 复制 sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo systemctl enable --now docker 验证安装： 复制 docker version docker info 国内镜像加速为避免访问 Docker Hub 受限，可在 daemon.json 中加入加速器： 复制 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://dockerproxy.net", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://ccr.ccs.tencentyun.com" ] } EOF 加速配置： 复制 sudo systemctl daemon-reload sudo systemctl restart docker 常用命令镜像管理 复制 docker pull nginx # 拉取镜像 docker images # 列出镜像 docker rmi nginx # 删除镜像 docker build -t myapp:latest . # 构建镜像 容器生命周期管理 复制 docker run -d -p 80:80 nginx # 以守护模式运行容器 docker ps # 查看运行中的容器 docker stop <container> # 停止容器 docker rm <container> # 删除容器 docker exec -it <container> bash # 进入容器 Shell docker logs -f <container> # 实时日志 docker restart <container> # 重启容器 数据卷与持久化 复制 docker volume create data-volume docker volume ls docker volume inspect data-volume docker volume rm data-volume 网络管理 复制 docker network ls docker network create my-net docker network inspect my-net docker network rm my-net Docker ComposeDocker Compose 是基于 YAML 的容器编排工具，通过单个 docker-compose.yml 进行服务定义、网络拓扑、依赖关系管理、持久化配置等。其主要优势：声明式 Infrastructure-as-Code服务依赖自动处理（depends_on）网络自动创建（Overlay 网络可用于 Swarm）多服务可一键启动、更新、停止非生产环境下比 Kubernetes 更轻量Compose安装验证 复制 docker compose version 如已显示版本号，则 Compose V2 已启用（现代 Docker 默认包含）。Compose 多服务应用案例Nginx + PHP-FPM + MySQL目录结构： 复制 /srv/demo/ ├─ docker-compose.yml ├─ web/ └─ nginx.conf docker-compose.yml 内容： 复制 version: '3.8' services: nginx: image: nginx:latest container_name: demo-nginx ports: - "8080:80" volumes: - ./web:/usr/share/nginx/html - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - php networks: - demo-net php: image: php:8.2-fpm container_name: demo-php volumes: - ./web:/var/www/html networks: - demo-net mysql: image: mysql:8.0 container_name: demo-mysql environment: MYSQL_ROOT_PASSWORD: root123 MYSQL_DATABASE: demo volumes: - db-data:/var/lib/mysql ports: - "3306:3306" networks: - demo-net volumes: db-data: networks: demo-net: Compose常用命令 复制 docker compose up -d # 后台启动所有服务 docker compose down # 停止并清理容器 docker compose logs -f # 查看所有服务日志 docker compose ps # 查看状态 docker compose restart nginx # 重启某服务 docker compose up --build -d # 重新构建镜像并启动 案例：Docker部署nginx 复制 docker run -d \ --name my-nginx \ -p 8080:80 \ -v /home/nginx/html:/usr/share/nginx/html \ -v /home/nginx/conf:/etc/nginx \ nginx 浏览器访问： 复制 http://服务器IP:8080 修改 /home/nginx/html/index.html 即可实时生效。