当前位置: 首页 > news >正文

Docker容器使用手册——入门篇(上)

目录

  • 1. 简介
  • 2. 基本概念
  • 3. 安装与配置
  • 4. 容器管理
  • 5. 镜像管理
  • 6. 网络配置
  • 7. 存储管理
  • 8. Docker Compose
  • 9. 常见问题与解决方案
  • 10. 最佳实践
  • 附录:常用命令速查表

1. 简介

1.1 什么是Docker

Docker是一个开源的容器化平台,它允许开发者打包他们的应用及其依赖项到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

1.2 Docker的优势

  • 简化部署:将应用及其依赖打包到容器中,保证环境一致性
  • 隔离性:容器之间相互隔离,避免环境冲突
  • 轻量级:容器共享主机内核,启动速度快,资源占用少
  • 可移植性:容器可以在不同环境中一致运行
  • 扩展性:易于实现容器编排和自动扩展
  • 版本控制:可以对容器镜像进行版本管理

1.3 Docker的应用场景

  • 应用程序容器化
  • 微服务架构实现
  • 持续集成/持续部署(CI/CD)
  • 开发环境一致性保障
  • 高可用系统构建
  • 测试环境快速搭建

2. 基本概念

2.1 容器(Container)

容器是Docker的基本执行单元,是镜像的运行时实例。容器包含应用及其依赖,但共享主机操作系统内核。

2.2 镜像(Image)

镜像是一个只读的模板,包含运行容器所需的所有文件系统结构和内容。镜像可以基于其他镜像构建,通过Dockerfile定义构建过程。

2.3 Dockerfile

Dockerfile是一个文本文件,包含构建Docker镜像所需的一系列命令。每个命令在镜像中创建一个新的层。

2.4 仓库(Repository)

仓库是集中存放Docker镜像的地方,可以是公开的(如Docker Hub)或私有的。仓库分为公共仓库和私有仓库。

2.5 注册表(Registry)

注册表是存放仓库的服务器,如Docker Hub是最大的公共注册表。

2.6 卷(Volume)

卷是用于持久化数据的机制,允许数据在容器间共享或在容器停止后保留。

3. 安装与配置

3.1 在Windows上安装Docker

  1. 系统要求

    • Windows 10 64位专业版、企业版或教育版(1607+),或Windows 11
    • 启用Hyper-V和容器功能
    • 至少4GB RAM
  2. 安装步骤

    • 从Docker官网下载Docker Desktop安装包
    • 运行安装程序,按照提示完成安装
    • 安装完成后重启计算机
  3. 验证安装

    • 打开命令提示符或PowerShell
    • 运行docker versiondocker run hello-world验证安装

3.2 在macOS上安装Docker

  1. 系统要求

    • macOS 11 Big Sur或更高版本
    • 至少4GB RAM
  2. 安装步骤

    • 从Docker官网下载Docker Desktop for Mac安装包
    • 拖动Docker应用到Applications文件夹
    • 从Applications文件夹启动Docker
  3. 验证安装

    • 打开终端
    • 运行docker versiondocker run hello-world验证安装

3.3 在Linux上安装Docker

  1. Ubuntu/Debian安装

    sudo apt-get update
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    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"
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
  2. CentOS/RHEL安装

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io
    sudo systemctl start docker
    sudo systemctl enable docker
    
  3. 验证安装

    sudo docker version
    sudo docker run hello-world
    

3.4 配置Docker

  1. 配置国内镜像源

    • 编辑/etc/docker/daemon.json(Linux)或在Docker Desktop的设置中配置
    {"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
    }
    
    • 重启Docker服务:sudo systemctl restart docker(Linux)或重启Docker Desktop
  2. 配置用户权限

    sudo usermod -aG docker $USER
    
    • 重新登录以应用更改

4. 容器管理

4.1 创建与运行容器

  1. 基本命令

    docker run [选项] 镜像名 [命令] [参数]
    
  2. 常用选项

    • -d: 后台运行容器
    • -p 主机端口:容器端口: 端口映射
    • -v 主机路径:容器路径: 挂载卷
    • --name 容器名: 指定容器名称
    • -e 变量名=值: 设置环境变量
    • --restart=always: 设置容器自动重启
  3. 示例

    # 运行一个Nginx容器,映射80端口,命名为my-nginx
    docker run -d -p 80:80 --name my-nginx nginx# 运行MySQL容器,设置密码,挂载数据卷
    docker run -d -p 3306:3306 --name mysql \-e MYSQL_ROOT_PASSWORD=password \-v mysql-data:/var/lib/mysql \mysql:8.0
    

4.2 查看容器

  1. 列出所有运行中的容器

    docker ps
    
  2. 列出所有容器(包括已停止的)

    docker ps -a
    
  3. 查看容器详情

    docker inspect 容器名或ID
    
  4. 查看容器日志

    docker logs [选项] 容器名或ID
    # 实时查看日志
    docker logs -f 容器名或ID
    
  5. 查看容器内进程

    docker top 容器名或ID
    

4.3 容器的启动、停止、重启

  1. 启动容器

    docker start 容器名或ID
    
  2. 停止容器

    docker stop 容器名或ID
    
  3. 重启容器

    docker restart 容器名或ID
    
  4. 强制停止容器

    docker kill 容器名或ID
    

4.4 进入容器

  1. 使用exec进入容器(推荐)

    docker exec -it 容器名或ID /bin/bash
    # 对于Alpine基础的容器
    docker exec -it 容器名或ID /bin/sh
    
  2. 使用attach连接容器

    docker attach 容器名或ID
    

4.5 删除容器

  1. 删除单个容器

    docker rm 容器名或ID
    
  2. 强制删除运行中的容器

    docker rm -f 容器名或ID
    
  3. 删除所有已停止的容器

    docker container prune
    

5. 镜像管理

5.1 拉取镜像

# 拉取最新版本docker pull 镜像名
# 拉取指定版本
docker pull 镜像名:标签# 示例
docker pull nginx:latest
docker pull mysql:5.7

5.2 查看镜像

# 列出所有本地镜像
docker images# 查看镜像详情
docker inspect 镜像名或ID# 查看镜像历史
docker history 镜像名或ID

5.3 删除镜像

# 删除单个镜像
docker rmi 镜像名或ID# 强制删除镜像
docker rmi -f 镜像名或ID# 删除所有未使用的镜像
docker image prune -a

5.4 构建镜像

  1. 创建Dockerfile

    # 使用官方Python镜像作为基础镜像
    FROM python:3.9-slim# 设置工作目录
    WORKDIR /app# 复制requirements.txt到容器
    COPY requirements.txt .# 安装依赖
    RUN pip install --no-cache-dir -r requirements.txt# 复制应用代码
    COPY . .# 暴露端口
    EXPOSE 5000# 设置环境变量
    ENV NAME World# 运行应用
    CMD ["python", "app.py"]
    
  2. 构建镜像

    docker build -t 镜像名:标签 路径
    # 示例
    docker build -t myapp:v1 .
    
  3. 构建优化技巧

    • 使用多阶段构建减小镜像体积
    • 按依赖变化频率排序Dockerfile指令
    • 使用.dockerignore文件排除不需要的文件
    • 选择更小的基础镜像(如Alpine)

5.5 推送镜像

  1. 登录Docker Hub

    docker login
    
  2. 标记镜像

    docker tag 本地镜像名:标签 用户名/仓库名:标签
    
  3. 推送镜像

    docker push 用户名/仓库名:标签
    
http://www.dtcms.com/a/613874.html

相关文章:

  • C语言编译器网页版 | 轻松编写与调试C语言程序
  • QT注册自定义类相关的两个用法
  • 进程间关系(linux)
  • WordPress外贸成品网站的免费获取渠道
  • 经典算法题之汉明距离(二)
  • 公司注册网站模板上杭网站设计
  • 基于Spring AI的RAG和智能体应用实践
  • Flutter:跨平台开发终极指南
  • Python-将身份证正反面图片-生成PDF
  • 建单页网站搜网站的关键词
  • 数据科学每日总结--Day20--区块链
  • 自建网站平台有哪些建立个人网站能干
  • Docker中容器的备份方法和步骤
  • 折叠屏手机如何选:横向内折与竖向内折形态及核心参数解析
  • 我想网上做网站软件项目管理书籍推荐
  • el-table组件右侧出现空隙
  • 南宁响应式网站制作抖音运营公司排名前十
  • 【IO模型与并发服务器】
  • QT QML Item基类浅谈
  • Go语言学习笔记(二)
  • 前端CSS预处理器对比,Sass与Less
  • Ubuntu NAT模式设置静态 IP 地址
  • 建英文网站广州排名seo公司
  • Qt 对 JSON和XML文件的操作详解
  • flash网站开发广州门户网站制作公司
  • VideoPipe中集成多模态大模型做视频(图片)分析
  • 网站推广优化排名seo建设网站论文
  • Halcon HDevelop 核心语法与实战笔记
  • 网站开发需要的资料高级网站开发工程师工资
  • (6)框架搭建:Qt实战项目之主窗体工具条