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

Docker简易教程

文章目录

  • Docker 教程
    • 安装 & 配置
    • Docker 镜像管理命令
    • Docker 容器管理命令
    • Dockerfile
    • Docker 网络模式
    • Docker Compose 多容器编排
    • Kubernetes与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容器的整合

参考

  • 30 分钟快速入门 Docker 教程
  • 史上讲解最好的 Docker 教程,从入门到精通(建议收藏的教程)
  • Docker 详解(保姆级安装+配置+使用教程)
  • Docker快速入门上手教程(保姆式),含docker所有常用命令大全(详细)!
  • 40分钟的Docker实战攻略,一期视频精通Docker

bilibili总结

http://www.dtcms.com/a/465372.html

相关文章:

  • vps 网站发布直播软件app下载免费
  • DORIS 服务器宕机重启后出现的问题
  • 网络安全审计技术原理与应用
  • 手机上做网站南宁品牌网站设计公司
  • 第五部分:VTK高级功能模块(第135章 Imaging模块 - 图像处理类)
  • 如何通过 5 种有效方法同步 Android 和 Mac
  • AJAX 知识篇(2):Axios的核心配置
  • 招商网站建设公司申请注册商标的流程
  • 网页美工课程seo网站优化师
  • 海外关键词规划SEO工具
  • AI学习日记——卷积神经网络(CNN):卷积层与池化层的实现
  • iOS 26 系统流畅度实战指南|流畅体验检测|滑动顺畅对比
  • JS中new的过程发生了什么
  • 系统白名单接口添加自定义验证(模仿oauth2.0),防安全扫描不通过
  • 校园服装网站建设预算手机软件应用市场
  • 【AI论文】ExGRPO:从经验中学习进行推理
  • 连接两个世界:QIR——量子-经典混合计算的编译器桥梁
  • 怎样制作网页链接教程狼雨seo教程
  • 第1章:初识Linux系统——连接网络NAT模式
  • CSS3 动画:从入门到精通
  • 在JavaScript / HTML中,所有转义字符(字符实体)
  • shopnc本地生活o2o网站源码网站开发软件怎么做
  • Vue3+socket.io 项目本地vite配置
  • wangEditor
  • Unity网络开发--超文本传输协议Http(1)
  • 从“用框架”到“控系统”——数据流、事件流、接口边界是如何形成的;
  • 有没有什么网站做泰国的东西做网站排名软件
  • 达梦数据库逻辑备份与还原
  • 如何解决Redis和数据库的一致性问题?
  • 新版saas餐饮外卖小程序源码/微信/支付宝/抖音/扫码点餐/DIY装修/美团代付/全开源