docker修改容器配置文件的3种方法总结

目录
  • run时候已经进行绑定操作
  • 修改未绑定的配置文件
  • 拷贝容器内外的文件操作
  • 修改对外端口等
  • 总结

run时候已经进行绑定操作

在启动容器的时候可以通过 -v双向绑定本地的某文件,这样任意修改哪一个都会同步变化docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • –volume , -v: 绑定一个数据卷
  • -d: 后台运行容器,并返回容器ID;
  • –name=“redis”: 为容器指定一个名称;
  • -e username=“ritchie”: 设置环境变量;
  • -m :设置容器使用内存最大值;
  • redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
docker run -p 6378:6379 --name redis -v /Users/conf/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /Users/conf/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

使用镜像 nginx:latest,以后台模式启动一个容器,将容器的80 端口映射到主机的 80 端口,主机的目录 /root/docker/nginx/data 映射到容器的 /data。

docker run -p 80:80 -v /root/docker/nginx/data:/data -d nginx:latest

修改未绑定的配置文件

docker inspect [容器名称]

docker inspect redis

可以配合grep一起使用,例如仅查看容器ip时可以这样做

docker exec -it reids ls /usr/local/bin

拷贝容器内外的文件操作

进入容器,加入我们要修改的文件时cptest.txt

docker cp [容器名字]:[具体文件地址] [想要拷贝到本地的目标地址]
#例子
docker cp redis:/test/cptest.txt ./

docker cp [本机文件地址] [容器名字]:[容器里的目标地址]
#例子
docker cp cptest.txt redis:test

除了cp操作我们还可以在外部对容器内的其他文件也进行操作

修改对外端口等

docker inspect redis|grep Id
cd /var/lib/docker/containers
cd 容器id
vim hostconfig.json

为什么去/var/lib/docker/containers/…

是因为在inspect的内容中可以看到主机信息保存在这里了

总结

到此这篇关于docker修改容器配置文件的3种方法的文章就介绍到这了,更多相关docker修改容器配置文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker容器修改配置文件的实现

    一.进入容器 docker run [option] 镜像名 [向启动容器中传入的命令] 常用可选参数说明: -i 表示以"交互模式"运行容器 -t 表示容器启动后会进入其命令行.加入这两个参数后,容器创建就能登录进去.即 分配一个伪终端. --name 为创建的容器命名 -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射.注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上. -d 在ru

  • 解决docker容器重启之后/etc下某些配置文件被重置的问题

    1. /etc/hosts, /etc/resolv.conf和/etc/hostname容器中的这三个文件不存在于镜像,而是存在于于/var/lib/docker/containers/,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部. 因此,如果在容器中修改这些文件的话,修改部分不会存在于容器的top layer,而是直接写入这三个物理文件中. 2.为什么重启后修改内容不存在了? 原因是:每次Docker在启动容器的时候,通过重新构建新的/etc/hosts文件,这又是为什么

  • nginx在docker容器中自动生成配置文件

    公司在搭建docker自动化部署时,需要制作一个nginx镜像在其docker run时通过外部指定环境变量使得容器中的配置文件自动生成,不需要再到容器里改配置文件. 实现思路 最后运行的命令大概是这样: docker run -d -p 80:80 -e xxx=xx 镜像名称 镜像中脚本路径 这里的脚本会代替dockerfile中的CMD指令,所以我们要构建一个自动生成且启动nginx的shell脚本. #!/bin/bash #从环境变量里面获取lt开头,为了与其他环境变量区别开,例如lt

  • docker修改容器配置文件的3种方法总结

    目录 run时候已经进行绑定操作 修改未绑定的配置文件 拷贝容器内外的文件操作 修改对外端口等 总结 run时候已经进行绑定操作 在启动容器的时候可以通过 -v双向绑定本地的某文件,这样任意修改哪一个都会同步变化docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 –volume , -v: 绑定一个数据卷 -d: 后台运行容器,并返回容器ID: –name=“redis”: 为容器指定一个名称: -

  • Docker定制容器镜像的2种方法(推荐)

    一.需求 由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试时又需要开启ssh.所以上网也查了查资料.下面详细的纪录下.在centos 容器内安装ssh后,转成新的镜像用于后期测试使用. 二.镜像定制 第一种方式(手动修改容器镜像) 1.先下载centos镜像 [root@docker ~]# docker pull centos 2.启动容器并进行配置 启动容器, [root@docker ~]# docker run -it -d --

  • 详解Docker修改容器端口映射的方法

    直接解决方法 具体可参考Stack Overflow链接 docker运行时存在守护程序,所以我们需要停止docker内运行的容器和docker服务.具体可参考官网给出的守护程序解释 docker stop 容器id //CentOS下停止docker服务(Ubuntu类似) sudo systemctl stop docker 使用以下命令找到已创建容器的hostconfig.json和config.v2.json配置文件. find / -name hostconfig.json //或co

  • Docker容器互访的三种方法

    我们都知道docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢.下面介绍三种方法解决容器互访问题. 方式一.虚拟ip访问 安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问. [root@33fcf82ab4dd /]# [root@CentOS ~]# ifconfig ...... docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICA

  • asp.net core 修改默认端口的几种方法

    一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望 被框架所管制,那如何实现默认端口的修改呢? 骨架代码: public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder Cre

  • SpringBoot注入配置文件的3种方法详解

    这篇文章主要介绍了SpringBoot注入配置文件的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方案1:@ConfigurationProperties+@Component 定义spring的一个实体bean装载配置文件信息,其它要使用配置信息是注入该实体bean /** * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配

  • JavaWeb读取配置文件的四种方法

    方式一:采用ServletContext读取 获取配置文件的realpath,然后通过文件流读取出来或者通过方法getReasurceAsStream(). 因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的classes目录中,也可以在应用层级及WEB-INF的目录中.文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在WEB-INF及Web-Root下面等.因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xm

  • 分享MongoDB修改oplog大小的4种方法

    目录 方法一 方法二 方法三 1.关闭mongod 2.修改配置文件 3.启动mongod实例,并备份oplog 4.重建oplog 5.插入前面保存的oplog时间点记录 6.关闭mongod实例 方法四 1.查看oplog大小 2.修改oplog大小 3.验证oplog大小 4.整理碎片,回收空间(可选) 修改oplog有四种方法: 方法一 步骤如下: 停掉所有secondary节点 主节点删除local目录下文件,副本节点删除数据目录下所有文件 修改所有节点的配置文件,如:oplogSiz

  • docker修改容器的端口、容器名、映射地址以及注意事项

    目录 1.docker修改容器名 2.docker修改修改端口.映射地址… 2.1.先找容器的ID 2.2.停止docker容器 2.3.停止docker 2.4.查找配置文件 2.5.备份原有文件,如果出现问题后可以还原回去 2.6.修改配置文件(hostconfig.json) 2.6.修改配置文件(config.v2.json) 2.7.启动docker服务 2.8.查看端口是否修改 2.9.启动docker容器 注意!!! 补充:如何利用docker给容器改名呢 总结 1.docker修

  • 解决docker修改mysql配置文件的问题

    今天在用docker启动一个5.7的数据库在建表时候遇到下面问题: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is

随机推荐