标签: docker

  • 定时清理 docker nginx 日志文件

    Nginx 如果开启了日志,Linux 系统中默认的文件通常是 /var/log/nginx/access.log

    如果流量比较大时间久了会占用大量磁盘空间。

    本文中 Nginx 是运行在Docker 容器中的,

    所以清理时,需要将命令传递给Docker

    首先获取 Docker Container ID

    cid=$(docker ps | grep nginx | awk '{print $1}');

    在宿主机执行清理命令

    /usr/bin/docker exec $cid bash -c 'truncate -s 0 /var/log/nginx/access.log'

    在 crontab 设置命令触发时间为每月1号的1点1分

    1 1 1 * * cid=$(docker ps | grep nginx | awk '{print $1}');/usr/bin/docker exec $cid bash -c 'truncate -s 0 /var/log/nginx/access.log'
  • Docker php:7.2.34-fpm-alpine3.12 安装zip扩展

    基于 php:7.2.34-fpm-alpine3.12 创建docker安装 zip 扩展

    apk add --no-cache libzip-dev && docker-php-ext-configure zip --with-libzip=/usr/include && docker-php-ext-install zip

    参考:

    https://github.com/docker-library/php/issues/797

  • 修改已经创建的docker容器的端口映射

    本文翻译自Syed Rakib Al Hasanstackoverflow.com的回答

    原始链接:https://stackoverflow.com/questions/19335444/how-do-i-assign-a-port-mapping-to-an-existing-docker-container

    对于已经创建的docker容器,如何修改映射的端口号呢?可以参考如下的操作步骤

    0)  docker container list –all

    结果中的CONTAINER ID列为容器id

    1)  docker inspect <容器id>   |  grep Id

    查看容器hash,<容器id>由步骤0)获得

    2)  docker stop <容器id>

    停止运行中的容器

    3) vim /var/lib/docker/containers/[容器hash]/hostconfig.json

    编辑容器配置文件,<容器hash>由步骤1)获得

    修改PortBindings参数配置,宿主机8001端口映射容器80端口示例:

    “PortBindings”:{“80/tcp”:[{“HostIp”:””,”HostPort”:”8001″}]},”

    4) systemctl restart docker

    重新启动docker引擎

    5)docker start <容器id>

    重新启动docker容器