Docker基础知识与实践指南.250411
Docker基础知识与实践指南
1. Docker简介
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上。Docker通过容器技术,可以实现应用的快速部署、弹性伸缩,并确保在不同环境下的一致性运行。
1.1 Docker的主要概念
- 镜像(Image):Docker镜像是一个只读的模板,包含了运行应用程序所需的所有文件和配置。
- 容器(Container):容器是镜像的运行实例,可以被启动、停止、删除等。
- 仓库(Repository):用于存储和分发Docker镜像的地方。
2. Docker安装
2.1 CentOS安装Docker
# 卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加软件源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动Docker
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
2.2 Ubuntu安装Docker
# 更新apt包索引
sudo apt-get update
# 安装必要的系统工具
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
# 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 设置稳定版仓库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.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 docker-ce docker-ce-cli containerd.io
3. Docker基本命令
3.1 镜像管理
# 查看本地镜像
docker images
# 拉取镜像
docker pull [镜像名称]:[标签]
# 删除镜像
docker rmi [镜像ID]
# 构建镜像
docker build -t [镜像名称]:[标签] .
3.2 容器管理
# 启动容器
docker run -d --name [容器名称] [镜像名称]
# 停止容器
docker stop [容器ID/容器名称]
# 启动已停止的容器
docker start [容器ID/容器名称]
# 删除容器
docker rm [容器ID/容器名称]
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 进入容器
docker exec -it [容器ID/容器名称] /bin/bash
4. Dockerfile基础
Dockerfile是用于构建Docker镜像的文本文件,包含了一系列的指令和参数。
4.1 常用指令
# 基础镜像
FROM ubuntu:20.04
# 维护者信息
MAINTAINER your-name "your-email@example.com"
# 设置工作目录
WORKDIR /app
# 复制文件
COPY . /app
# 运行命令
RUN apt-get update && apt-get install -y nodejs
# 暴露端口
EXPOSE 3000
# 设置环境变量
ENV NODE_ENV=production
# 容器启动时执行的命令
CMD ["npm", "start"]
5. Docker Compose
Docker Compose是用于定义和运行多容器Docker应用程序的工具。
5.1 安装Docker Compose
# 下载Docker Compose
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
5.2 docker-compose.yml示例
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"
6. Docker网络
Docker提供了多种网络驱动,包括:
- bridge:默认网络驱动程序
- host:容器使用主机的网络
- none:禁用容器的所有网络
- overlay:用于Swarm服务之间的通信
6.1 网络命令
# 创建网络
docker network create my-network
# 查看网络列表
docker network ls
# 查看网络详情
docker network inspect my-network
# 连接容器到网络
docker network connect my-network my-container
7. Docker数据管理
7.1 数据卷(Volumes)
# 创建数据卷
docker volume create my-vol
# 查看数据卷列表
docker volume ls
# 查看数据卷详情
docker volume inspect my-vol
# 删除数据卷
docker volume rm my-vol
7.2 挂载示例
# 使用数据卷挂载
docker run -v my-vol:/app/data my-image
# 使用主机目录挂载
docker run -v /host/path:/container/path my-image
8. Docker安全最佳实践
- 使用官方镜像
- 定期更新基础镜像
- 使用多阶段构建
- 最小化镜像大小
- 不在容器中运行特权进程
- 使用安全扫描工具
- 实施访问控制
- 限制资源使用
9. 常见问题与解决方案
9.1 容器无法启动
检查步骤:
- 查看容器日志:
docker logs [容器ID] - 检查端口占用:
netstat -tunlp - 检查存储空间:
df -h - 查看Docker守护进程状态:
systemctl status docker
9.2 镜像拉取失败
解决方案:
- 检查网络连接
- 配置镜像加速器
- 检查存储空间
- 验证镜像名称和标签
10. 参考资源
喜欢请赞赏一下啦^_^赞赏后请加wx:weyocul,相关文章提到的的安装包稍后给到哦!没有收到赞赏直接加我的,直接无视哈!

浙公网安备 33010602011771号