0%

docker容器停止运行时修改容器内的配置文件信息

mac下docker容器停止运行时修改容器内的配置文件信息(mysql为例)

docker容器工具nsenter

1.docker run -it --privileged --pid=host justincormack/nsenter1
2.cd /var/lib/docker&& ls

进入nsenter容器内,执行

3.cd /var/lib/docker/ && ls

builder     containerd  image       overlay2    runtimes    tmp         volumes
buildkit    containers  network     plugins     swarm       trust

进入overlay2下

cd overlay2/ && ls

032aa097f9e44b7fe1983ece7239c5ceb47deaf8dbd8c290a146718265323493
0713cff7f10dfb5d266587b6fa37c96e0d4e32d91828e8789ede09eec2405ee6
6ac139acad4e6d7206e09a590232381d3e4131f95c10790de09777a1b4dbbd16

进入对应的容器

 cd 6ac139acad4e6d7206e09a590232381d3e4131f95c10790de09777a1b4dbbd16 && ls
 
注:6ac139acad4e6d7206e09a590232381d3e4131f95c10790de09777a1b4dbbd16容器(这个容器ID是mysql8的容器ID)

进入diff目录,然后再进入etc目录,mysql的my.cnf配置文件就在这里。

cd diff/etc

配置文件完整目录

/var/lib/docker/overlay2/6ac139acad4e6d7206e09a590232381d3e4131f95c10790de09777a1b4dbbd16/diff/etc

参考链接

https://www.jianshu.com/p/6aefed2be1c7
https://blog.csdn.net/ilovemilk/article/details/80239489

vim

容器内无法使用vim命令:
apt-get update
apt-get install vim

my.cnf开启慢日志(废弃,暂时有问题)

将配置文件外挂到宿主机(macos下):

/Users/ux/Applications/docker/mysql8/conf/my.cnf

slow_query_log=1

slow_query_log_file=/Users/ux/Applications/docker/mysql8/logs/mysql_slow.log

show VARIABLES LIKE '%slow_query_log%'
show VARIABLES like '%slow_query_log%'

set global slow_query_log=1

cd /var/lib/docker/overlay2/6ac139acad4e6d7206e09a590232381d3e4131f95c10790de09777a1b4dbbd16
/Users/ux/Library/Containers/com.docker.docker

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

screen ~/Library/Containers/com.docker.docker/Data/tasks/com.docker.driver.amd64-linux/tty

screen ~/Library/Containers/com.docker.docker/Data/tasks/com.docker.driver.amd64-linux/tty

[screen is terminating]

docker run -it --rm --privileged --pid=host justincormack/nsenter1

cd /var/lib/docker/containers && ls