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

2025最新版Docker讲解/面试/命令/容器化技术

弱小和无知不是生存的障碍,傲慢才是!

Docker是什么

docker是一款由Go语言开发基于操作系统内核提供轻量虚拟化,在Docker安装的软件并不是真正安装在宿主机操作系统中,而是安装在容器的文件系统中(隔离环境),宿主机看不到这些安装,容器之间互不影响。

镜像

镜像搜索 

docker search 

我在使用这个命令时,总是出现报错,也不是镜像源问题。但在命令上加上镜像就行了。

docker search 镜像加速地址/[imageName]

镜像下载

docker pull 镜像名:版本

镜像列表

docker images [-a]

镜像删除

docker rmi 镜像名:版本/镜像ID


容器操作

容器运行[创建+启动]

docker run [-d --name -p ]镜像名/镜像ID

默认同步启动后,-d[detach v.分离] 可后台启动,--name 后可指定容器名,-p进行宿主机与容器内部端口映射

容器启动[已存在容器]

docke start 容器名/ID

默认异步启动后 

容器状态

docker stats 容器名/ID

容器列表

docker ps 

默认查看运行的容器,-a 查看全部容器

容器日志

docker logs 容器名/ID

容器停止 

docker stop 容器名/ID [不可用镜像名]

容器重启

docker restart 容器名/ID

容器删除

docker rm 容器名/ID

-f强制删除

容器进入

docker exec -it  容器名/ID  /bin/bash

-it 交互式,/bin/bash 命令行操作。进入容器单独文件系统

分享

 

容器提交

docker commit  [-m 信息] 容器名/ID 镜像名:版本

-m 增加提交信息,提交到本机镜像中

镜像保存

docker save -o 压缩包名.tar 镜像名:ID/ID

镜像加载

docker load -i 压缩包路径

自动将压缩包转成docker镜像


以下推送,本人无法实现。请教.... 

登录

docker login

命名

docker tag 镜像名:版本/ID dockerhub用户名/自定义镜像名:版本

产生一个新的镜像,ID与之前镜像相同

推送

docker push 镜像名:版本

拉取

docker pull 用户名/镜像名:版本

数据共享

为了避免进入容器内部文件系统的复杂结构,我们在创建容器的时候可以使用目录挂载,让宿主机与容器之间共享数据。

目录挂载

以宿主机内容为准

docker run [-v 宿主机路径(/根路径开始)/容器路径]  --name 自定义容器名 镜像名:版本/ID

卷映射

docker run [-v 宿主机路径/容器路径]  --name 自定义容器名 镜像名:版本/ID

默认存在在宿主机/var/lib/docker/volumes/<volume-name>

容器通信

一般容器想要通信需要连接到宿主机ip,然后通过宿主机暴露的端口,在映射到别的容器。效率不高。

在我们docker内部有一个docker0网络,相当于一个局域网,每个容器都有自己的ip,我们可以直接通过他们的ip访问,但由于一些开关机会导致容器发生ip变化,所以这不是最佳选择。

我们可以自定义网络,通过容器名作为我们的ip

自定义网络

docker network create 网络名

然后在启动容器时

docker run -d   --name 自定义容器名    --newwork 网络名    镜像:版本/ID 

docker compose批量启动

http://www.xdnf.cn/news/15246.html

相关文章:

  • Marin说PCB之Allegro高亮BOM器件技巧详解
  • 【Linux】C++项目分层架构:核心三层与关键辅助
  • 报错 | “pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,
  • 基于ASP.NET MVC+SQLite开发的一套(Web)图书管理系统
  • SHA-256算法流程分析与演示——github工程完善
  • 基于k8s环境下pulsar高可用测试和扩缩容(上)
  • Flask 入门到实战(3):用 SQLAlchemy 优雅操作数据库
  • Linux 进程管理核心机制
  • 【mac】快捷键使用指南
  • 【AI大模型】RAG系统组件:向量数据库(ChromaDB)
  • 飞算 JavaAI 体验:重塑 Java 开发的智能新范式
  • LeetCode--43.字符串相乘
  • JVM故障处理与类加载全解析
  • ✨ FastMCP 实战进阶:构建可远程访问的 MCP 工具服务与客户端(Python 深度解析)
  • Elasticsearch混合搜索深度解析(上):问题发现与源码探索
  • 【flutter】flutter网易云信令 + im + 声网rtm从0实现通话视频文字聊天的踩坑
  • 影石(insta360)GO3拇指相机格式化后的恢复方法
  • OpenCV 与深度学习:从图像分类到目标检测技术
  • 如何安装和配置Autoptimize插件以提高WordPress网站访问速度
  • 飞算JavaAI:重塑Java开发的“人机协同“新模式
  • 免费应用分发平台的安全漏洞和防护机制是什么?
  • Jenkins 自动触发执行的配置
  • 飞算JavaAI:重构Java开发的“人机协同”新范式
  • JavaScript VMP (Virtual Machine Protection) 分析与调试
  • 创建显示心电图的组件
  • 前端学习4:小白入门注册表单的制作(包括详细思考CSS、JS实现过程)
  • uniapp语音播报天气预报微信小程序
  • 格密码--数学基础--02基变换、幺模矩阵与 Hermite 标准形
  • 从UI设计到数字孪生实战应用:构建智慧金融的风险评估与预警平台
  • 使用 SSH 连接 GitHub