Docker基础
以下是一份 Docker 基础使用教程,涵盖从安装到核心操作的完整流程,附详细命令和示例:
🐳 一、Docker 安装
1. Linux 系统(Ubuntu)
卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加稳定版仓库
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
验证安装
sudo docker run hello-world
2. Windows/Mac
- 下载 Docker Desktop:https://www.docker.com/products/docker-desktop
- 安装后启动,终端输入 docker version验证
⚙️ 二、核心概念
🚀 三、基础操作命令
1. 镜像管理
拉取镜像(默认latest标签)
docker pull nginx:1.25
查看本地镜像
docker images
删除镜像
docker rmi nginx:1.25
导出镜像
docker save -o nginx.tar nginx:1.25
导入镜像
docker load -i nginx.tar
2. 容器生命周期
运行容器(前台模式)
docker run -it ubuntu:20.04 /bin/bash
运行容器(后台模式)
docker run -d --name my-nginx nginx:1.25
查看运行中的容器
docker ps
查看所有容器(包括停止的)
docker ps -a
停止容器
docker stop my-nginx
启动已停止的容器
docker start my-nginx
删除容器
docker rm my-nginx
🔄 四、高级操作
1. 端口映射
将容器80端口映射到主机8080
docker run -d -p 8080:80 --name web nginx:1.25
浏览器访问 http://localhost:8080
2. 数据卷挂载
挂载主机目录到容器
docker run -d -v /host/path:/container/path nginx:1.25
创建命名卷
docker volume create my-vol
docker run -d -v my-vol:/app/data nginx:1.25
3. 进入容器
进入运行中的容器
docker exec -it my-nginx /bin/bash
查看容器日志
docker logs -f my-nginx
🏗️ 五、构建自定义镜像
1. Dockerfile 示例
基于官方Python镜像
FROM python:3.9-slim
设置工作目录
WORKDIR /app
复制当前目录文件到容器
COPY . .
安装依赖
RUN pip install --no-cache-dir -r requirements.txt
暴露端口
EXPOSE 5000
定义环境变量
ENV NAME World
容器启动命令
CMD [“python”, “app.py”]
2. 构建镜像
docker build -t my-python-app .
3. 运行自定义镜像
docker run -d -p 5000:5000 my-python-app
🌐 六、网络管理
1. 查看网络
docker network ls
2. 创建自定义网络
docker network create my-net
3. 容器加入网络
docker run -d --name web --network my-net nginx:1.25
docker run -it --name client --network my-net alpine ping web
🧩 七、Docker Compose 多容器编排
1. 安装
Linux
sudo curl -L “https://github.com/docker/compose/releases/latest/download/docker-compose-(uname−s)−(uname -s)-(uname−s)−(uname -m)” -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
2. docker-compose.yml 示例
version: ‘3.8’
services:
web:
image: nginx:1.25
ports:
- “8080:80”
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
3. 常用命令
docker-compose up -d # 启动服务
docker-compose down # 停止并删除容器
docker-compose ps # 查看服务状态
docker-compose logs # 查看日志
🛠️ 八、实用技巧
1. 清理资源
删除所有停止的容器
docker container prune
删除未被使用的镜像
docker image prune -a
清理所有未使用资源
docker system prune
2. 查看容器资源使用
docker stats
3. 设置容器资源限制
docker run -d --memory=“512m” --cpus=“0.5” nginx:1.25
🚨 九、常见问题解决
1. 端口冲突
查看端口占用
sudo netstat -tuln | grep 8080
停止占用进程或修改映射端口
docker run -d -p 8081:80 nginx:1.25
2. 权限问题
容器内操作文件时添加权限
docker run -d -v /host/path:/container/path:Z nginx:1.25
3. 容器无法启动
查看日志定位问题
docker logs my-container
📚 十、学习资源
1.官方文档:https://docs.docker.com/
2.交互式教程:https://www.docker.com/101-tutorial
3.镜像仓库:https://hub.docker.com/
掌握这些基础操作后,您已能高效使用Docker进行应用容器化部署!下一步可深入学习:
- Docker Swarm集群管理
- Kubernetes容器编排
- 持续集成/持续部署(CI/CD)集成