docker复制容器文件

前言

最近用docker装了一个mysql,有个区分大小写的配置需要改动,改完我直接重启这个容器了,发现直接启动不起来了,查看日志是那个配置写错了,但是没法用 docker exec这样的去该了,下面说下其他方式

docker cp命令

如果容器运行正常,可以直接用exec命令去修改容器里配置文件,命令如下

1
docker exec -it 容器id bash

但是现在无法启动,所以需要使用其他方式,cp命令,把需要改的配置文件从容器中拷贝到主机中进行修改,命令如下

1
2
3
docker cp 容器id:容器中路径 主机路径
#示例:将容器[223ccw23]中[/etc/mysql/my.conf]文件拷贝到当前目录
docker cp 223ccw23:/etc/mysql/my.conf ./

然后用各种方式修改完成后,再用相反的命令复制回去,命令如下

1
2
3
docker cp 主机路径 容器id:容器中路径
#示例:将主机中当前目录下my.cnf文件 拷贝到 容器[223ccw23]中[/etc/mysql/my.conf]
docker cp ./my.cnf 223ccw23:/etc/mysql/my.conf