Docker简易教程 - 教程

Docker 教程

[!NOTE]

本文主要叙述最常用的命令~

可用 --help 查看用法~

对于本文中未提及 或 有误地方,请大家评论~

一种软件部署技术,利用容器化技术为应用程序封装独立的运行环境,每个运行环境即为一个容器,承载容器运行的计算机称为宿主机。就是Docker

  • 容器的模版就是镜像:
  • 容器:是基于镜像运行的应用程序实例,进程,相互独立
  • 仓库:存放和分享 Docker 镜像的场所,Docker Hub

Docker技术原理简述

  • ControlGroups:用于限制和隔离进程的资源使用,确保容器资源消耗不影响宿主或其它容器
  • NameSpaces:用于隔离进程的资源视图,使得容器只能看到自己内部的进程ID、网络资源和文件目录,而看不到宿主机的
  • Docker 容器本质上是一个特殊的进程,但进入容器内部后,其表现如同一个独立的操作系统

安装 & 设置

Ubuntu22.04

  1. 访问 get.docker.com获取安装脚本

  2. 下载脚本 curl -fsSL https://get.docker.com -o install-docker.sh

  3. 安装 sudo sh install-docker.sh

  4. 修改配置文件 sudo vim /etc/docker/daemon.json

    {
    "registry-mirrors": [
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror2.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc"
    ]
    }
  5. 重启 Docker 服务

    sudo systemctl daemon-reload

    sudo systemctl restart docker

Docker 镜像管理命令

  • docker pull [registry_address/][namespace/]<image_name>[:tag]:下载镜像
    • registry_address:Docker 仓库的注册表地址。docker.io 是 Docker Hub 官方仓库,可省略
    • namespace:命名空间,通常是作者或组织名称。library 是 Docker 官方仓库的命名空间,可省略
    • image_name:镜像的名称
    • tag:镜像的标签名,通常表示版本号。latest 表示最近版本,可省略
  • docker images:列出本地镜像
  • docker rmi <image_name/id>:删除本地镜像
    • -f:强制删除正在运行

Docker 容器管理命令

  • docker run:创建并运行容器,如果本地不存在指定镜像,会先自动拉取镜像

    • -d:让容器在后台执行,不阻塞当前终端窗口

    • -p <宿主机端口>:<容器内部端口>:端口映射

      Docker 容器运行在独立的虚拟网络环境中,默认无法直接从宿主机访问容器内部网络,桥接模式

    • -e <K>:<V>:环境变量,向容器内部传递环境变量,在 Docker Hub 镜像文档中查看

    • --name:指定自定义、在宿主机上唯一的名称

    • -it:让控制台进入容器内部,获得一个交互式的命令行环境

      • docker run -it <image_name> /bin/bash
    • --rm:当容器停止时,自动将其从宿主主机上删除。与 -it 联用,用于临时调试场景

    • --restart:配置容器停止时的重启行为

      • always:只要容器停止,就立即重启
      • unless-stopped:除非手动停止容器,否则都会尝试重启
    • -v:将宿主机的文件目录与容器内的文件目录绑定,持久化

      • -v <宿主机目录路径>:<容器内部目录路径>:绑定挂载
      • -v <卷名称>:<容器内部目录路径>:命名卷挂载
  • docker ps:查看正在运行的容器

    • -a:查看所有容器(正在运行、已停止)
  • docker rm <container_name/id>:删除容器

容器的启停与管理

  • docker start <container_name/id>:重启一个已停止容器

    容器的配置信息与 docker run 时一致

  • docker create <container_name>:只创建容器,并不启动,需要通过 docker start 启动

  • docker stop <container_name/id>:停止一个正在运行容器

  • docker inspect <container_name/id>:查看容器详细配置信息

卷管理命令

  • docker volume create <volume_name>:创建挂在卷
  • docker volume inspect <volume_name>:查看详细信息
  • docker volume ls:列举已有卷
  • docker volume rm <volume_name>:删除卷
  • docker volume prune -a:删除未使用卷

容器内部操作与调试

  • docker logs <container_name/id>:查看容器运行日志

    • -f:滚动查看日志,实时刷新
  • docker exec <container_name/id> <cmd>:在一个正在运行的容器内部执行 linux 命令

    docker exec -it <container_name/id> /bin/bash

Dockerfile

Dockerfile 是一个文本文件,指定制作 Docker 镜像的步骤和指令

基本结构与指令

Docker 网络模式

  • 桥接模式
  • 主机模式
  • 无网络模式

Docker Compose 多容器编排

docker-compose.yml

Kubernetes与Docker容器的整合

参考

bilibili总结

posted @ 2025-11-10 21:45  ycfenxi  阅读(7)  评论(0)    收藏  举报