修改Docker容器内的配置文件

修改Docker容器内的配置文件,第1张

1. 拉取镜像,部署应用

    docker pull + 镜像地址

    docker run --name 应用名称 -d -p 对外端口:容器内端口  镜像名称:版本号

    (如果容器内的配置文件本身存在问题就会导致该容器无法运行,docker ps查看正在运行的容器,docker ps -a 查看所有容器,docker logs 容器id 可以查看容器日志)

2. 将容器内的配置文件拷贝到本机上修改(如果在容器内修改,重启后就会失效)

    docker cp 容器id:容器中文件的路径 本机目的路径

3.  将本机修改后的文件传入容器内替换

    docker cp 本机文件路径 容器id:容器内文件路径

4. 重启容器

    docker restart 容器id

1. 进入容器

docker exec 容器ID

其他常见命令见:https://www.jianshu.com/writer#/notebooks/49874836/notes/86218928

1. 如果访问仍然存在问题,首先检查容器内端口是否正确

2. 将上述第三步换成以下步骤,将本机的文件挂载到容器内,而非替换文件(如Nginx的地址修改,重启后会回到原来镜像拉取的地址)

    1. 移除原来的容器 

        rm -f 容器id

    2. 重新运行容器并将写好的配置文件挂载到容器内

        docker run --name 容器名称 -d -p 对外端口:容器内端口 -v 本机配置文件路径:容器内配置文件路径:ro 镜像地址:版本号

由于docker 的某些镜像相对简洁,例如mysql 镜像这些都是没有 对文件修改的 工具vim ,如果安装这些文件 *** 作工具相对耗时间,也比较麻烦。所以以下方法可以直接 *** 作 容器中的文件:

1、 执行查询容器所有信息的命令:   docker   inspect   containers_name   找到 自己容器的 diff 目录。

2、  *** 作文件: 新增,修改,删除,这些 *** 作都是可以的。

1、  docker 差异的文件: 也就是新增文件这些。

进入 diff  目录中,找到自己想要修改的文件, 可以直接修改文件。

2、修改容器中所有文件

与 diff 同层目录中, 进入 merged。

1、程序需要前台运行

程序必须前台执行,如果是java进程的话 不要有nohup 或者使用service的方式进行后台运行

否则可能会出现频繁启动应用的问题

原因就是docker只能管理运行中的镜像的一个进程(所以没有特殊需要不要一个镜像执行后出现两个进行的现象,尽量使用k8s的pod来解决)

2、日志要前台打印

日志直接console前台输出即可,docker会自动收集stdout输出的日志。不要存在打两份日志的设置,比如一份file,一份console等。

3、配置文件最好放在镜像内或远程可读取,非必要不要进行卷挂载目录进行读取

有些程序的配置文件是外置的,运行包和配置文件没有在一个执行包中。

如果有以上情况可以将配置文件和运行包都包含在镜像当中。

如果有些配置文件需要在不同的环境下做出修改或更换,就需要对应用程序进行分别打镜像或者改造一下程序,使其只是远程获取配置文件。分别打镜像不太符合整个发布流程,因为分别打镜像包中间可能会有差异,造成生产和开发测试不同。

还有一种方法就是使用k8s的configmap的服务来解决对应读取文件的问题。

4、数据卷的使用

每个容器运行之后不管你有没有显示的指定创建数据卷,都会有一个临时卷的存在,来存储一些临时生成的文件

这些临时文件会随着容器的生命周期而变化

如果你直接指定创建了数据卷,一定要创建在共享存储里面

否则会出现容器漂移之后读不到数据的情况

这种服务就叫做“有状态”的服务,一般我们的服务要做到“无状态”的

如果你的服务是有状态的,可以借助k8s的statuefulset来实现,包括启动顺序和给服务编号等 *** 作。

5、网络相关的注意事项(不要有创建网络相关的 *** 作)

(我们几乎用不到)

要让docker内服务识别正确的网卡

6、dockerfile

这里我定义了一个springboot微服务对应的dockerfile文件用来打镜像包,不管你现在用什么方式最后本质上都是使用 dockerfile来打镜像的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11538744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存