docker 编辑容器内文件

2023-11-18

docker 编辑容器内文件

近期在学习docker
为编辑容器中文件,可以使用以下几种方法,特此记录

方法1:在容器中修改

使用vi命令编辑文件。
注:如果vi命令没有,可以使用yum -y install vim或者apt-get install vim命令安装。

方法2:在本地修改

借用docker 拷贝文件到容器的命令
docker cp [目标文件路径] 容器id或容器名:[目的路径]

修改容器中文件方法如下:
从容器中拷贝目标文件到本地路径
docker cp 容器id或容器名:[目标文件路径] [本地目的文件路径]
在本地使用vim工具进行编辑文件
修改完成拷贝到目标容器中

举例说明:

[root@localhost ~]# docker cp 82b2f691c7fc:/etc/mysql/mysql.conf.d/mysqld.cnf ./
[root@localhost ~]# vim mysqld.cnf 
[root@localhost ~]# docker cp ./mysqld.cnf  82b2f691c7fc:/etc/mysql/mysql.conf.d/
[root@localhost 5qkaA4]# docker stop mysql
mysql
[root@localhost 5qkaA4]# docker start mysql
mysql
[root@localhost 5qkaA4]# docker exec -it mysql /bin/bash
root@82b2f691c7fc:/# mysql -u root -p 
Enter password: 

mysql> use mysql;
Database changed
mysql> select @@sql_mode;
+------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode                                                                                                             |
+------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> exit
Bye
root@82b2f691c7fc:/# exit

方法3:本地修改2

docker提供了数据持久化的方式,让docker内数据修改更加便利,容器创建的时候做好目录映射,直接修改宿主机文件,容器内的文件会相应变化。

docker run -itd -p 8080:80 -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf --name=webtest nginx:latest
命令创建容器,将宿主机nginx.conf文件映射到容器内部nginx服务/etc/nginx/目录下。

当我们修改容器内的nginx.conf配置文件时,直接修改宿主机/etc/nginx/nginx.conf配置即可,我们在宿主机插入hello数据,进入容器内部检查,容器内数据也会修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker 编辑容器内文件 的相关文章

  • vim 映射键不起作用

    我一直在尝试映射 ctrl 来在 vim 的插入模式下保存 它似乎永远不起作用 http vim wikia com wiki Map Ctrl S to save current or new files http vim wikia c
  • bash双括号问题

    我对 bash 脚本非常陌生 在使用双括号时遇到了问题 我似乎无法让它们在 Ubuntu Server 11 10 中工作 我的下面的脚本位于 if test sh 中 bin bash if 14 14 then echo FOO fi
  • WordPress docker 的 nginx ssl 反向代理不会加载资源和 css

    最近我用docker配置了wordpress站点 它在端口8080上运行 然后我在主机上配置了nginx反向代理 一切都很好 但在我添加ssl站点之后不久 就无法加载itz css 并且我找不到错误 server server name m
  • Bash 中 $() 和 () 之间的区别

    当我打字时ls l echo file 支架的输出 这只是简单的回显 被获取并传递到外部ls l命令 就等于简单的ls l file 当我打字时ls l echo file 我们有错误 因为不能嵌套 内部外部命令 有人可以帮助我理解之间的区
  • 有关 Linux 内存类型的问题

    关于Linux内存我有以下问题 我知道活动内存是最常访问的内存部分 但是有人可以解释一下 linux 如何考虑将内存位置用于活动内存或非活动内存 主动存储器由哪些部分组成 磁盘 文件缓存是否被视为活动内存的一部分 有什么区别Buffers
  • 如何删除树莓派的相机预览

    我在我的 raspberryPi 上安装了 SimpleCv 并安装了用于使用相机板的驱动程序 uv4l 驱动程序 现在我想使用它 当我在 simpleCV shell Camera 0 getImage save foo jpg 上键入时
  • 对 sf:: 的未定义引用

    我想用 C 制作 GUI 应用程序 发现 SFML 是一个不错的选择 幸运的是 我使用的是 Linux 所以 SFML 2 4 已经安装在我的系统上 所以我开始搜索一些教程并找到了一个制作简单窗口的教程 但是当我运行代码时 出现错误 提示未
  • xdotool 类型需要很长时间并导致整个桌面冻结

    我一直在使用xdotool type过去只能在快捷方式上输入耸肩xdotool type 这可行 但总是需要相当长的时间 并导致整个桌面冻结 完全冻结 而不仅仅是输入 几秒钟 不过并没有太打扰我 现在我需要一种方法来从文件中读取内容 对其进
  • 如何使用libaudit?

    我试图了解如何使用 libaudit 我想接收有关使用 C C 的用户操作的事件 我不明白如何设置规则 以及如何获取有关用户操作的信息 例如 我想获取用户创建目录时的信息 int audit fd audit open struct aud
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • 原生 Linux 应用程序可像 ResHacker 一样编辑 Win32 PE

    我想运行自动修改 dll服务 用户提交特定的 dll 我在服务器上修改它 然后用户可以下载 dll的修改版本 是否有任何本机 Linux 应用程序提供常见的 Win32 PE 修改功能 例如图标 字符串 加速器 对话等 至少提供命令行或脚本
  • 列出 Docker 容器的卷

    如何列出 Docker 容器的所有卷 我知道它应该很容易获得 但我找不到如何获得 另外 是否可以获取已删除容器的卷并将其删除 您可以使用 docker ps 获取容器 id 并写入 docker检查container id 像这儿 Volu
  • 如何对 Docker 容器中运行的 Spring Boot 应用程序进行健康检查?

    我正在 Docker 容器中运行 Spring Boot 应用程序 使用 Docker 文件启动容器中的应用程序 如何检查容器内 Spring Boot 应用程序的运行状况 如果容器停止或应用程序未运行 我需要根据运行状况检查自动重新启动容
  • UDP 广播发送失败:在 Linux 2.6.30 上“网络无法访问”

    我用udp广播写了一个程序 代码段如下 struct sockaddr in broadcast addr socklen t sock len sizeof broadcast addr bzero broadcast addr sock
  • 如何在两个不同帐户之间设置无密码身份验证

    我们可以在两台机器的两种不同用途之间设置无密码身份验证吗 例如 计算机A有用户A 计算机B有用户B 我们可以设置密码 ssh 以便计算机 A 上的用户 A 使用其用户帐户 A 登录计算机 B 谢谢你 如果我理解你的问题 你能设置一下吗ssh
  • 当我尝试在 ubuntu:18.04 中移动 /etc/resolv.conf 时,出现“设备或资源繁忙”。怎么解决呢?

    我的 Docker 容器中有一个 VPN 客户端 ubuntu 18 04 客户必须执行以下操作 mv etc resolv conf etc resolv conf orig 然后客户端应该创建新的 etc resolv conf与他们的
  • Linux 文本文件操作

    我有一个格式的文件 a href a href a href a href 我需要选择 之后但 之前的文本 并将其打印在行尾 添加后 例如 a href http www wowhead com search Su a a a a a
  • 无法在 Visual Studio 2022 中启动调试适配器

    如果我创建一个启用了 Docker 支持的 ASP Core MVC 目标框架 5 0 并启动它 我会得到 发生一个或多个错误 无法启动调试适配器 附加信息可能会 在输出窗口中可用 操作被取消 这是调试输出 启用 DebugAdapterH
  • Docker 日志中的 Python 异常标记为流:stdout

    我想解析和处理来自 docker 容器的所有错误 但当我期望 stderr 时 Python 异常标记为 stdout 举个简单的例子app py raise Exception 然后我在 docker 容器中运行这个文件 但在 var l
  • 如何获取本地文件系统上 docker 容器生成的内容(最小失败示例)

    这个问题是另一个问题的最小失败版本 如何获取本地文件系统上docker容器生成的内容 https stackoverflow com questions 34924011 how to get contents generated by a

随机推荐

  • win10下Linux子系统(ubuntu)开启并配置(shell主题,设置中文环境,图形界面...)

    创作不易 如果以下内容对你有帮助 别忘了点一个赞 让更多的小伙伴能看到吧 一 开启win10子系统 Windows Subsystem for Linux WSL 1 启动开发者模式 设置 gt 更新和安全 gt 开发者选项 gt 开发人员
  • 自动化测试框架Testng相关

    1 Testng简介 Testng是一套开源测试框架 是从Junit继承而来 testng意为test next generation 2 Testng介绍 适合测试的原因 比Junit涵盖功能更全面的测试框架 Junit更适合隔离性比较强
  • VS2017打开自身项目提示项目不兼容问题解决

    几天前用VS2017建的控制台程序 今天打开弹出对话框 提示版本不兼容 这我就很纳闷 VS2010的项目你打不开就算了 怎么自己的也提示版本不兼容 这重新创建一个再导入太麻烦了 在试了多次无果 而且百度到的都牛头不对马嘴 用NOTEPAD
  • PLSQL Developer的详细安装步骤

    1 下载地址http www allroundautomations com 下载下来 得到 2 解压到当前文件夹 3 双击plsqldev1105 x64 exe 安装PLSQL Developer 开发工具 点击plsqlev1105
  • uboot分析之第一阶段

    1 初始化 关看门狗 初始化时钟 初始化SDRAM 2 把程序从Nand flash 拷贝到 SDAM 3 设置SP sp指向某块内存 因为要调用c函数 就要使用栈 4 c函数就是读出内核 启动内核 1 起始位置 2 跳转到reset 3
  • 2020年高教社建模国赛真题A题--炉温曲线

    2020年高教社杯全国大学生数学建模竞赛题目 请先阅读 全国大学生数学建模竞赛论文格式规范 A题 炉温曲线 在集成电路板等电子产品生产中 需要将安装有各种电子元件的印刷电路板放置在回焊炉中 通过加热 将电子元件自动焊接到电路板上 在这个生产
  • StandardScaler类中transform和fit_transform

    StandardScaler类中transform和fit transform方法里 fit transform X train 找出X train的均值和 标准差 并应用在X train上 对于X test 直接使用transform方法
  • 机器学习常用十大算法

    基本的机器学习算法 线性回归算法 Linear Regression 逻辑回归算法 Logistic Regression 朴素贝叶斯算法 Naive Bayes 最近邻居 k 近邻算法 K Nearest Neighbors KNN 支持
  • 中路对线发现正在攻防演练中投毒的红队大佬

    背景 2023年8月14日晚 墨菲安全实验室发布 首起针对国内金融企业的开源组件投毒攻击事件 NPM投毒事件分析文章 紧接着我们在8月17日监控到一个新的npm投毒组件包 hreport preview 该投毒组件用来下载木马文件的域名地址
  • 信息收集 (一)Google Hack & robots文件

    一 Google Hack 在渗透测试中 信息收集是尤为重要的一部分 甚至可以占到整个渗透的百分之六十至七十 可见掌握好信息收集的方法十分重要 那GoogleHacking作为常用且方便的信息收集搜索引擎工具 它是利用谷歌搜索强大 可以搜出
  • nvm的安装

    当项目启动时npm i报错时 提示版本问题时 是因为项目中使用node版本过低而本地node版本太高时 需要切换低版本node 此时需要安装nvm node版本控制器 来进行版本切换 1 首先必须卸载本地node js 在我的电脑搜索nod
  • Dubbo 接口异常处理逻辑

    API 接口中抛出的异常类型 有一系列的规则 代码在 ExceptionFilter 的 onResponse 中 1 如果是受检异常 非Runtime 就直接抛出 这是因为如果是受检异常 接口定义的 throws 中需要涵盖 调用端需要捕
  • SQL server 基本增删改查(带练习示例)

    目录 建表sql语句 需要自己插数据 一 增加数据 1 插入单条数据 2 插入多条数据 二 修改数据 1 修改单列 修改刘德华的密码为123456 2 修改多列 修改小红的性别为女 年龄为30 三 删除数据 1 删除用户编号为3的用户信息
  • Python基本数据类型(三)

    一 set的函数说明 集合 set 是一个无序不重复元素的序列 基本功能是进行成员关系测试和删除重复元素 可以使用大括号 或者 set 函数创建集合 注 创建一个空集合必须用set 而不是 因为 是用来创建一个空字典 在python中set
  • python Django web 框架 (二十)之ORM

    Django之模型层第一篇 单表操作 一 ORM简介 我们在使用Django框架开发web应用的过程中 不可避免地会涉及到数据的管理操作 如增 删 改 查 而一旦谈到数据的管理操作 就需要用到数据库管理软件 例如mysql oracle M
  • 拿什么拯救你? rm -r

    天雷滚滚 天雷滚滚 天雷滚滚 作为一个Linux程序员 你能碰到的最伤心的事情 莫过于 编译了一整天的工程 不小心被rm r掉了 错误的执行了rm r 把文件系统都删除了 在嵌入式板子和PC之间切换的时候 不小心删错了目标 不要说你没有遇到
  • C++之数组

    C 基础 3 数组 3 1 一维数组 3 1 1 一维数组定义方式 3 1 2 一维数组数组名 3 2 二维数组 3 2 1 二维数组定义方式 3 2 2 二维数组数组名 3 数组 3 1 一维数组 概述 数组就是一个集合 里面存放了相同类
  • 进程、线程、管程、纤程、协程概念以及区别

    进程 进程是指在操作系统中能独立运行并作为资源分配的基本单位 由一组机器指令 数据和堆栈等组成的能独立运行的活动实体 进程在运行是需要一定的资源 如CPU 存储空间和I O设备等 进程是资源分配的基本单位 进程的调度涉及到的内容比较多 存储
  • WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connec

    python安装包错误 网络原因 直接改用阿里云镜像 然后再安装 pip config set global index url https mirrors aliyun com pypi simple 这就修改成功 接下来正常执行安装命令
  • docker 编辑容器内文件

    docker 编辑容器内文件 近期在学习docker 为编辑容器中文件 可以使用以下几种方法 特此记录 方法1 在容器中修改 使用vi命令编辑文件 注 如果vi命令没有 可以使用yum y install vim或者apt get inst