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数据,进入容器内部检查,容器内数据也会修改。