Docker 是一个用于开发、部署和运行应用程序的开源平台,它使用容器化技术将应用及其依赖打包成一个独立的容器,从而实现快速部署和可移植性。以下是 Docker 快速入门需要掌握的知识:
1. Docker 核心概念
• 镜像(Image): 只读模板,用于创建容器(例如:Ubuntu、Nginx、MySQL等镜像)。
• 容器(Container): 镜像的运行实例,是一个轻量级的隔离环境。
• 仓库(Registry): 存储镜像的服务(默认是 Docker Hub,如 docker.io)。
2. 安装 Docker
• 不同操作系统的安装方法
• Linux:大多数 Linux 发行版都可以通过包管理器来安装 Docker。以 Ubuntu 为例,可以使用以下命令进行安装:
sudo apt-get update
sudo apt-get install docker.io
• Windows:在 Windows 上可以安装 Docker Desktop,它提供了一个简单的图形化界面,方便用户管理 Docker 容器和镜像。可以从 Docker 官方网站下载 Docker Desktop 的安装包,然后按照安装向导进行安装。
• macOS:同样可以安装 Docker Desktop for Mac,安装过程与 Windows 类似。
3. 基础命令
镜像操作
# 拉取镜像(从 Docker Hub)
docker pull ubuntu:20.04
# 查看本地镜像
docker images
# 删除镜像
docker rmi <镜像ID或名称>
容器操作
# 启动新容器(并进入交互模式)
docker run -it ubuntu:20.04 /bin/bash
# 启动容器(后台运行)
docker run -d --name my_nginx nginx
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 停止容器
docker stop <容器ID或名称>
# 启动已停止的容器
docker start <容器ID或名称>
# 删除容器
docker rm <容器ID或名称>
端口映射与目录挂载
# 映射主机端口 8080 到容器端口 80
docker run -d -p 8080:80 --name web nginx
# 挂载主机目录到容器
docker run -d -v /host/path:/container/path nginx
4. 构建自定义镜像
Dockerfile 示例
创建一个文件 Dockerfile:
# 基础镜像
FROM nginx:alpine
# 复制文件到容器
COPY index.html /usr/share/nginx/html
# 设置启动命令(可省略,因为基础镜像已定义)
CMD ["nginx", "-g", "daemon off;"]
构建镜像
docker build -t my-nginx:v1 .
运行自定义镜像
docker run -d -p 80:80 my-nginx:v1
5. 数据持久化
使用数据卷(Volume)
# 创建数据卷
docker volume create my_volume
# 挂载数据卷到容器
docker run -d -v my_volume:/data --name my_container nginx
绑定挂载(Bind Mount)
# 直接挂载主机目录
docker run -d -v /host/path:/container/path nginx
6. 网络配置
# 创建自定义网络
docker network create my_network
# 将容器连接到网络
docker run -d --network my_network --name app1 nginx
docker run -d --network my_network --name app2 nginx
# 容器间通过名称通信(例如在 app1 中 ping app2)
docker exec -it app1 ping app2
7.
Docker Compose(多容器管理)
安装 Docker Compose
# Linux
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose.yml 示例
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
启动服务
docker-compose up -d
8. 常用技巧
清理无用资源:
docker system prune -a
查看日志:
docker logs <容器ID>
进入运行中的容器:
上一条:Anaconda是Python中最好用的数据科学环境管理库
下一条:Docker环境部署 DeepSeek 模型