Docker 是一个开源的容器化平台,用于创建、部署和运行应用程序。它通过轻量级的容器技术,将应用程序与运行环境打包在一起,从而实现应用程序的快速交付和一致运行。
Docker 的特点:
- 轻量级:与虚拟机相比,Docker 容器共享主机的操作系统内核,资源占用小。
- 便携性:Docker 容器可以在开发、测试和生产环境中一致运行。
- 快速部署:容器的启动和销毁速度极快,便于快速迭代和扩展。
Docker 的核心概念
- 镜像(Image)
- 类似于虚拟机的模板,包含运行应用所需的文件系统和依赖。
- 使用
Dockerfile
定义,可以从已有镜像构建自定义镜像。
- 容器(Container)
- 是镜像的运行实例,独立运行的环境,可以随时启动、停止或销毁。
- Docker 引擎(Docker Engine)
- Docker 的核心组件,用于管理镜像、容器、网络等资源。
- Docker Hub
- 官方提供的公共镜像仓库,用于存储和分发 Docker 镜像。
Docker 的下载和安装
1. 下载 Docker
- 官方地址:Docker 下载页面https://www.docker.com/products/docker-desktop/
2. 安装 Docker
Windows
- 下载适合 Windows 的 Docker Desktop 安装包。
- 双击安装包,按照提示安装。
- 安装完成后,启动 Docker Desktop。
- 验证安装: 打开 PowerShell 或命令提示符,输入:docker –version如果显示 Docker 的版本信息,说明安装成功。
Linux(以 Ubuntu 为例)
- 更新系统:sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg - 添加 Docker 的官方 GPG 密钥和仓库: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 > /dev/null - 安装 Docker:sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io - 验证安装:docker –version
Docker 的基本使用方法
1. 验证 Docker 安装
运行测试容器:
docker run hello-world
如果输出一段测试信息,则 Docker 安装成功。
2. 常用命令
镜像管理
- 查看已下载的镜像:docker images
- 搜索镜像:docker search 镜像名
- 拉取镜像:docker pull 镜像名
- 删除镜像:docker rmi 镜像名
容器管理
- 启动容器:docker run -it 镜像名
- 查看运行中的容器:docker ps
- 查看所有容器:docker ps -a
- 停止容器:docker stop 容器ID/容器名
- 删除容器:docker rm 容器ID/容器名
其他命令
- 查看 Docker 系统信息:docker info
- 清理无用的镜像和容器:docker system prune
3. 使用 Dockerfile
构建自定义镜像
- 编写
Dockerfile
: 在项目目录下创建一个名为Dockerfile
的文件:# 基础镜像
FROM ubuntu:20.04
# 维护者信息
MAINTAINER YourName <yourname@example.com>
# 安装依赖
RUN apt-get update && apt-get install -y nginx
# 启动命令
CMD [“nginx”, “-g”, “daemon off;”] - 构建镜像:docker build -t my-nginx .
- 运行容器:docker run -d -p 8080:80 my-nginx访问
http://localhost:8080
,即可看到运行的 Nginx 服务。