【Docker】Q&A
容器日志占用空间过大
- 编写docker_log_size.sh脚本查看docker容器的日志文件情况
#!/bin/sh
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
- 编写clean_docker_log.sh脚本清理docker容器的日志
#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"
- 新建etc/docker/daemon.json配置文件
vim /etc/docker/daemon.json
- 添加log-dirver和log-opts参数
{
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
修改容器的env参数
- 关闭docker服务
systemctl stop docker
- 修改容器的env参数
vim /var/lib/docker/containers/容器id/config.v2.json
- 启动容器
systemctl start docker
- 查看修改之后的env
docker exec -it 容器id env
我现在有一个镜像里面配置了一个nginx,但是我发现这个nginx的配置不对,我想修改一下这个配置,但是要保留原来的镜像,请给出具体的操作步骤和说明
如果你想更改nginx的配置但又想保留原始的Docker镜像,你可以这样操作:
步骤一:首先,运行原始的Docker镜像并创建一个新的容器:
docker run -d --name mynginx -p 8080:80 your-nginx-image
其中,mynginx
是你创建的新容器的名称,your-nginx-image
是原始的nginx Docker镜像的名称。
步骤二:进入你刚才创建的新的Docker容器:
docker exec -it mynginx /bin/bash
步骤三:在容器中修改你想更改的nginx配置文件。通常,这个配置文件在/etc/nginx/nginx.conf
或者/etc/nginx/conf.d/
。你可以使用任何你习惯的编辑器进行修改,例如vi
或nano
:
vi /etc/nginx/nginx.conf
步骤四:修改完配置文件后,保存并退出编辑器,然后退出容器:
exit
步骤五:现在你的新容器中nginx的配置已经被修改,你可以保存这个容器为新的Docker镜像:
docker commit mynginx mynginx-new
其中,mynginx
是你的新容器的名称,mynginx-new
是你保存的新Docker镜像的名称。
步骤六:你可以通过运行新的Docker镜像来验证新的nginx配置是否生效:
docker run -d --name testnginx -p 8081:80 mynginx-new
这时你可以尝试访问localhost的8081端口看看是否nginx配置已经按照你的预期进行更改。
注意,所有的这些操作都是在保留原始Docker镜像的基础上进行的,也就是说,你的原始Docker镜像并没有被改动。
评论区