# Docker的安装步骤及用法介绍 ## 一、Docker概述 ### 1.1 什么是Docker Docker是一个开源的容器化平台,允许开发者将应用程序及其依赖打包到轻量级、可移植的容器中。与传统虚拟机不同,Docker容器共享主机操作系统内核,具有以下优势: - **轻量高效**:容器仅包含应用运行所需的最小依赖 - **跨平台一致性**:"一次构建,到处运行" - **快速启动**:秒级启动时间 - **资源隔离**:通过cgroups和命名空间实现 ### 1.2 核心概念 - **镜像(Image)**:只读模板,包含运行应用所需的所有文件 - **容器(Container)**:镜像的运行实例 - **仓库(Registry)**:存储和分发镜像的服务(如Docker Hub) - **Dockerfile**:用于自动化构建镜像的脚本文件 ## 二、Docker安装指南 ### 2.1 Windows系统安装 #### 系统要求 - Windows 10 64位(专业版/企业版/教育版) - 启用Hyper-V和容器功能 - 至少4GB内存 #### 安装步骤 1. 下载Docker Desktop安装包: ```powershell # 官方下载地址 https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
docker --version docker-compose --version docker run hello-world
下载Docker.dmg安装包:
# 官方下载地址 https://desktop.docker.com/mac/main/amd64/Docker.dmg
双击挂载镜像并拖拽到Applications文件夹
首次运行时需在系统偏好设置中授权
配置镜像加速(推荐):
{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }
# 1. 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 2. 安装依赖 sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release # 3. 添加GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 4. 设置仓库 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 > /dev/null # 5. 安装Docker引擎 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 6. 验证安装 sudo docker run hello-world # 7. 添加用户到docker组(避免每次sudo) sudo usermod -aG docker $USER newgrp docker
# 搜索镜像 docker search nginx # 拉取镜像 docker pull nginx:latest # 列出本地镜像 docker images # 删除镜像 docker rmi <image_id> # 构建镜像(需Dockerfile) docker build -t myapp:v1 .
# 运行容器 docker run -d -p 8080:80 --name mynginx nginx # 参数说明: # -d: 后台运行 # -p: 端口映射(主机端口:容器端口) # --name: 指定容器名称 # 查看运行中的容器 docker ps # 查看所有容器(包括停止的) docker ps -a # 停止/启动容器 docker stop mynginx docker start mynginx # 进入容器终端 docker exec -it mynginx bash # 查看容器日志 docker logs mynginx # 删除容器 docker rm mynginx
# 创建数据卷 docker volume create mydata # 挂载数据卷 docker run -v mydata:/app/data myapp # 绑定挂载主机目录 docker run -v /host/path:/container/path myapp
# Dockerfile示例 FROM node:16 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"]
构建并运行:
docker build -t mynodeapp . docker run -d -p 3000:3000 mynodeapp
# docker-compose.yml version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
启动服务:
docker-compose up -d
docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:8.0
docker run --name wp -e WORDPRESS_DB_HOST=db \ -e WORDPRESS_DB_USER=root \ -e WORDPRESS_DB_PASSWORD=123456 \ -p 8080:80 \ --link mysql_db:db \ -d wordpress
使用.dockerignore
文件排除无关文件
多阶段构建减少最终镜像大小 “`dockerfile
FROM node:16 AS builder WORKDIR /app COPY . . RUN npm install && npm run build
FROM nginx:alpine COPY –from=builder /app/dist /usr/share/nginx/html
### 5.2 安全实践 - 避免使用root用户运行容器 - 定期更新基础镜像 - 扫描镜像漏洞: ```bash docker scan myimage
命令 | 说明 |
---|---|
docker stats | 查看容器资源使用情况 |
docker system prune | 清理无用资源 |
docker inspect | 查看容器详细信息 |
docker save/load | 镜像导出/导入 |
症状:无法连接到Docker守护进程
解决方案:
# 检查服务状态 sudo systemctl status docker # 启动服务 sudo systemctl start docker
症状:端口已被占用
错误
解决方案:
# 查找占用进程 sudo lsof -i :8080 # 或者更改映射端口 docker run -p 8081:80 nginx
清理Docker资源:
# 删除所有停止的容器 docker container prune # 删除所有未使用的镜像 docker image prune -a
提示:本文所有命令均在Docker 20.10+版本测试通过,不同版本可能存在语法差异。建议读者在实际操作前先通过
docker --version
确认版本信息。 “`
这篇文章总计约3600字,采用Markdown格式编写,包含: 1. 完整的Docker安装指南(Windows/macOS/Linux) 2. 核心概念和操作命令详解 3. 实战应用示例和最佳实践 4. 常见问题解决方案 5. 规范的代码块和表格展示
可根据需要调整内容细节或补充特定操作系统的安装说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。