Docker补充

news/2025/10/21 14:52:21/文章来源:https://www.cnblogs.com/dhan/p/19155113

目录
  • Docker实际应用
    • docker 管理
      • 镜像操作
      • 容器操作
    • Dockerfile
      • 命令学习
  • 一些Docker的图解

Docker实际应用

docker 管理

镜像操作

  • 搜索对应镜像
docker serarch xxx
  • 查看现有镜像
docker images 
docker images ls
docker images image_name # 也可以直接查找镜像名
  • 拉取镜像
docker pull xxx  # 默认default版本docker pull xxx:xxx # 可以冒号后面指定版本号
  • 镜像配置文件路径(该文件内容是用的json格式数据)
docker info  # docker信息,包含了路径
一般情况下在 /var/lib/docker 下
docker info | grep root # 不确定的话可以直接查看对应数据存放的目录

可以接着去看该目录下对应的内容,下图直接告诉你存放docker镜像配置文件的具体位置

# 查看镜像的信息
docker images inspect 镜像id
  • 删除镜像
docker rmi 镜像名字# 删除所有镜像, 参数a就是显示所有镜像,q就是只显示镜像id,所以列出来后再进行rmi就很方便了
docker rmi `docker images -aq`

这里删除的时候可能会因为容器被挂起了,或者容器被使用过无法删除镜像,这里需要找到对应的容器删除,那删除容器后面会讲

  • 导入/导出镜像
 # 导出docker save nginx:latest -o docker_nginx_latest.tar.gzdocker save nginx > /opt/docker_nginx_latest.tar.gz# 导入docker load -i docker_nginx_latest.tar.gz
  • 当前状态保存为一个新的镜像
# commit 命令
OPTIONS说明:-a :提交的镜像作者。-c :使用 Dockerfile 指令来创建镜像。-m :提交时的说明文字。-p :提交镜像前暂停容器(默认为 true)。将名为 my_container 的容器保存为一个名为 my_new_image 的新镜像
指定标签: docker commit my_container my_new_image:latest
  • 给镜像打标签
通过为镜像打标签,可以使用更容易记忆的名字或版本号来标识和管理镜像
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]- SOURCE_IMAGE[:TAG]: 源镜像名称和标签,标签默认为 latest。- TARGET_IMAGE[:TAG]: 目标镜像名称和标签,标签默认为 latest。

容器操作

  • 运行容器
docker run nginx:xxx# 也可以在运行容器的时候执行一个命令
docker run nginx:xxx ping baidu.om
# 上述中运行了一个容器,容器运行了ping biadu.com,所以当你终止ping baidu.com 的时候这个容器也就终止了# 参数-i 交互模式  参数-t开启一个终端
docker run -it nginx:xxx bash
# 上面这个就是运行nginx的时候进入一个交互模式,并且运行一个命令bash,因为你bash才能交互,# 上面的都是:如果你中断了该进程比如ping 或者 你进入的那个bash交互,中断了之后容器也终止了
# 那我们就需要另一个参数 -d 在后台运行容器
docker run -d nginx:xxx ping biaud.com
如下图所示一:command中就是你运行的命令,当然具体情况看你执行了什么

  • 指定容器运行的名字
docker run -d --name xxx nginx:xxx
  • 容器启动
docker start 容器名/容器id
  • 停止容器
docker stop 容器名/容器id
  • 删除容器
docker rm 容器名/容器id
  • 查看某个容器的日志
# 查看该容器的所有日志,注意:会显示非常多
docker logs 容器id# 监听日志参数 -f
docker logs -f 容器id
  • 查看已有容器
docker ps# 查看不管挂掉还是停止了的容器
docker ps -aq
  • 查看容器详细信息
# 这个依旧是json数据,显示容器的具体详细信息
docker container inspect 容器id
  • 容器端口映射
# 这里就是物理机的84端口与容器内的80端口映射
# 也就是说你物理机访问84端口就可以访问到容器的80端口
docker run -p 84:80 nginx# 实际情况中当然还要结合其他参数,比如-d后台执行,--name 指定容器的名字 等等

Dockerfile

Dockerfile文件,可以通过docker build . 来构镜像

这个就是当你有这个Dockerfile文件后,你通过这个命令能够根据你这个文件的配置去构建一个镜像

命令学习

  • FROM
从现有镜像指定一个作为基础先去本地看是否存在该镜像,若有就直接使用,若没有则需要去仓库中在线下载
  • RUN
从你这个镜像中,你希望运行一个容器后他要做什么
  • ADD <物理机的源目标/URL> <容器的目录目标>
添加宿主机的文件到容器内
ADD 添加进容器, 若源文件为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到目标路径若ADD指定的是一个URL,则会去下载然后放到目标目录中

  • COPY
和ADD功能差不多,但官方推荐使用这个,因为这个单单只是复制仅此而已,不会对什么压缩包额外进行解压之类操作
  • WORKDIR
类似CD,就是在创建容器后,进入的目录的位置
在你配置Dockerfile的时候,可能需要切换目录去做一些操作,那这个就类似cd
这也就是为什么上面所说有的容器进入的时候,发现他的默认目录不一样,这是因为写Dockerfile的那个人可能用这个切换了目录去做一些事情,也有可能希望用户默认进入的目录是某个目录等等
  • VOLUME
挂载,就是类似vmware的目录映射,将物理的某个目录映射到容器内的某个目录
当你访问容器内那个目录的时候就相当于访问映射的那个物理机的目录这个更多的作用是:确保应用产生的数据不写入应用层,而是将数据写入到我们的物理机中想要存储的位置,所以我们就可以用VOLUME还有一个方式是当你run的时候,指定参数-v指定目录挂载

当你构建了一个镜像后,且运行了一个该镜像的容器后可以通过docker inspect 容器id来查看你挂载的目录在哪,下面这个就是自动指定的一个物理机中的目录,你VOLUME指定的是容器中哪个目录

  • CMD ["参数1", "参数2"]
    该命令不允许在run的时候额外传入参数,所以这就需要后面学习的ENTRYPOINT命令
比如我们docker run -it nginx bash中最后一个bash就是我们进入容器执行的一个命令
若不指定,那就是默认我们写的dockerfile中构建的这个容器的配置中写的这个CMD了
所以该CMD的作用就是默认你进入容器的命令例子:
CMD ["cat", "/etc/passwd"]  # 这个就是等于正常的cat /etc/passwd
CMD ["/bin/bash"]
  • ENTRYPOINT
简单点直接看例子:
Dockerfile重新修成下面这样
------------
FROM nginxENTRYPOINT ["nginx", "-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参------------当你run的时候就可以传参了:docker run  nginx:test -c /etc/nginx/new.conf
这个可不是重新传入一个新命令哈,这个是重新传入-c参数并指定新的一个conf文件进去
(容器内会默认运行以下命令,启动主进程(/etc/nginx/new.conf:假设容器内已有此文件)
  • EXPOSE
EXPOSE <端口1> [<端口2>...]仅仅只是声明端口,不会作用于你实际的映射端口(除非你使用随机映射参数-P的时候才会起到帮忙随机你指定的端口)
- 帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射。
- 在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。

理解:
EXPOSE 指令是声明容器运行时提供服务的端口,这只是一个声明,在容器运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。

  • ENV/ARG
ENV 在构建镜像和容器运行的时候都可以找得到能使用
ARG 只在构建镜像的时候能用,容器跑起来的时候找不到不能用
  • User
    切换用户
USER root
USER test
  • MAINTAINER
维护者信息(可选)

一些Docker的图解

看视频课过程中截图下来的一些图解

这里主要要注意增删的时候都是只在容器层处理,基础镜像这些不会被改变,只做记录,这是为了保证你这个镜像image可以启动多个容器而不会因为某个容器修改导致其他容器想要使用的时候镜像被修改了


现阶段我个人所需的且能用到的就这些,后续可能会有更多的补充内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/942293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QNX】Socket ServerClient 源代码

1 Socket Server 源代码 服务端计划只启动一个线程,所以功能实现时使用了一些全局变量。1 int32_t skt_s_listen_fd{-1};2 pthread_t thr_server;3 struct sockaddr_un srv_addr;4 struct sockaddr_un cli_addr;5 std…

Linux环境--文件系统--动静态库

Linux环境--文件系统--动静态库2025-10-21 14:44 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

详细介绍:大模型落地的四大核心引擎:从技术突破到产业重构

详细介绍:大模型落地的四大核心引擎:从技术突破到产业重构pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

2025机电安装厂家推荐:太仓华芃专注工业设备安装,实力厂家可靠之选

2025机电安装厂家推荐:太仓华芃专注工业设备安装,实力厂家可靠之选 工业设备安装领域的技术挑战与行业现状 随着制造业向智能化、精密化方向快速发展,工业设备安装行业正面临着前所未有的技术挑战。据统计数据显示,…

EasyCVR视频汇聚平台GB28181级联异常排查:上级订阅信息无响应的根源解析

EasyCVR视频汇聚平台GB28181级联异常排查:上级订阅信息无响应的根源解析在视频监控平台的级联部署中,GB28181协议的稳定运行是保障上下级平台数据互通的核心。最近我们收到用户反馈:EasyCVR向下级平台级联时,状态显…

2025不锈钢酸洗钝化液实力厂家推荐,常州隆彦商贸环保型清洗解决方案

2025不锈钢酸洗钝化液实力厂家推荐,常州隆彦商贸环保型清洗解决方案 技术革新引领行业变革 在当前不锈钢表面处理领域,酸洗钝化工艺正面临前所未有的技术挑战。传统酸洗工艺普遍存在能耗高、污染严重、效率低下等问题…

2025 年半导体探针台厂家最新推荐榜:覆盖晶圆 / 高低温 / 射频测试领域,精选国产实力企业

引言 随着半导体产业向高精度、多场景方向快速发展,探针台作为芯片测试核心设备,其性能与服务直接影响企业研发效率与产品质量。当前市场中,探针台厂家数量繁杂,部分企业技术薄弱、服务滞后,难以适配新能源、光通…

2025 年最新烘干机生产厂家推荐榜单:覆盖多品类需求,聚焦高效节能与品质保障食品/蔬菜/滚筒/木材/药材/大型烘干机厂家推荐

引言 当前烘干机市场品类繁杂,从食品、药材到木材、工业物料等细分领域需求各异,但部分厂家技术薄弱,设备能耗高、烘干精度不足,且售后服务缺失,导致企业选购时易踩坑。同时,市场信息杂乱,缺乏权威指引,企业难…

arp 断网小实验

0-1 从零开始到实现arp 断网部署环境安装kali Linux这里选择使用kali linux 主要是因为其环境包含了大量安全渗透工具https://www.kali.org/get-kali/#kali-virtual-machines导入下载的 .vmdk 文件(正常下载得到的是z…

2025 年箱变压器厂家最新推荐榜单:涵盖非晶合金铁心、三相、矿用等多类型设备,助力采购方精准筛选优质合作企业

引言 随着电力行业向智能化、绿色化转型,箱变压器作为电力系统核心设备,市场需求不仅持续增长,对设备的专业性、适配性要求也显著提升。但当前市场中,供应商技术水平差异大,部分企业缺乏核心研发能力,产品难以满…

从“人防”到“智防”:EasyCVR+煤矿AI智能分析一体机重塑矿山安全监管模式

从“人防”到“智防”:EasyCVR+煤矿AI智能分析一体机重塑矿山安全监管模式矿业是国民经济的基础产业,为工业化和现代化提供着不可或缺的物质支撑。然而,传统矿业模式长期面临着资源禀赋恶化、安全环保压力增大、生产…

从Java工程师到AI工程师,我花了6个月的转型经验分享

刚刷到一则招聘信息:字节跳动30%后端岗位要求大模型开发能力[据程序员如何转行到ai大模型领域],而我去年正是从Java开发转型到这个风口。 为什么值得一试?薪资真的很香 作为典型的技术型选择障碍,我先对比过各种转…

2025 年最新推荐配电柜源头厂家口碑排行榜:聚焦高压智能防爆等多类型产品,精选实力品牌助企业采购高压/智能/抽屉式/照明/防爆配电柜厂家推荐

引言 当前电力系统在工业生产与城市建设中的作用愈发关键,配电柜作为核心控制设备,其品质直接影响电力网络安全稳定运行。但市场上配电柜厂家数量众多,产品质量参差不齐,部分厂家缺乏核心技术,生产的产品存在安全…

使用matlab进行牛顿迭代求函数极值的手段

使用matlab进行牛顿迭代求函数极值的手段pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

2025年超声波检测设备厂家权威推荐榜:相控阵/高频/水浸/钎焊/液冷板检测系统与设备精选指南

2025年超声波检测设备厂家权威推荐榜:相控阵/高频/水浸/钎焊/液冷板检测系统与设备精选指南 行业技术背景与发展趋势 超声波检测技术作为现代工业无损检测的核心手段,正经历着从基础脉冲回波向智能化、自动化方向的深…

完整教程:这个叫DOCX-MCP的开源项目,解决了AI操作Word的一个大麻烦

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:第五章:原型模式 - 克隆大法的大师

完整教程:第五章:原型模式 - 克隆大法的大师pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

XMLType 测试记录

XMLType 测试记录Posted on 2025-10-21 14:33 大势趋007 阅读(0) 评论(0) 收藏 举报XMLType 学习测试-- 创建表 CREATE TABLE employee_xml (emp_id NUMBER PRIMARY KEY,emp_data XMLType );-- 插入数据 INSERT I…

2025年氢氧化镁厂家推荐排行榜,矿石氢氧化镁,水镁石氢氧化镁,阻燃剂氢氧化镁,改性氢氧化镁源头企业实力解析

2025年氢氧化镁厂家推荐排行榜,矿石氢氧化镁,水镁石氢氧化镁,阻燃剂氢氧化镁,改性氢氧化镁源头企业实力解析 氢氧化镁作为一种重要的无机化工产品,在阻燃材料、环保处理、医药制备等领域具有广泛应用。随着全球对…

vue控制页面不能复制

<template> <div @contextmenu.prevent @copy.prevent @cut.prevent @paste.prevent class="no-select"> <!-- 页面内容 --> </div> </template> <style scoped> .no-s…