前言
Docker入门教程及常见操作指南。
Operating System: Ubuntu 22.04.4 LTS
参考文档
Docker基础概念
- 镜像(Image):只读模板,包含运行环境和应用程序
- 容器(Container):镜像的运行实例
- 仓库(Registry):存储镜像的服务器(默认Docker Hub)
安装Docker
常用操作
镜像管理
# 拉取镜像
docker pull nginx:latest
# 查看本地镜像
docker images
# 删除镜像
docker rmi <image_id>
# 构建镜像(需Dockerfile)
docker build -t my-image:1.0 .
容器操作
# 运行容器(前台模式)
docker run -it ubuntu /bin/bash
# 运行容器(后台模式)
docker run -d -p 80:80 --name my-nginx nginx
# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 停止容器
docker stop <container_id>
# 启动已停止的容器
docker start <container_id>
# 进入运行中的容器
docker exec -it <container_id> /bin/bash
# 删除容器
docker rm <container_id>
网络管理
# 创建自定义网络
docker network create my-network
# 使用自定义网络运行容器
docker run -d --network my-network --name app1 my-app
数据持久化
# 创建数据卷
docker volume create my-vol
# 使用数据卷
docker run -d -v my-vol:/data --name db mysql
# 绑定主机目录
docker run -d -v /host/path:/container/path nginx
Dockerfile示例
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]
实用技巧
清理无用资源:
docker system prune
查看容器日志:
docker logs -f <container_id>
查看容器资源使用:
docker stats
保存/加载镜像:
docker save -o my-image.tar my-image:1.0 docker load -i my-image.tar
常见问题
- 权限问题:确保用户属于docker组
- 端口冲突:检查-p参数设置的端口是否被占用
- 数据丢失:使用volume持久化重要数据
- 中文乱码:在Dockerfile中添加:
ENV LANG C.UTF-8
建议通过实际项目练习来巩固这些操作,后续可以学习:
- 容器编排(Kubernetes)
- 镜像优化技巧
- 容器安全实践
- 持续集成/交付(CI/CD)集成
结语
第三百零五篇博文写完,开心!!!!
今天,也是充满希望的一天。