docker容器日志大小设定

全局设置

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["http://f613ce8f.m.daocloud.io"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

单个容器编排

nginx: 
  image: nginx:1.18-alpine 
  restart: always 
  logging: 
    driver: "json-file"
    options: 
      max-size: "5g"

删除容器日志

cat /dev/null > /var/lib/docker/containers/容器id/容器id-json.log

DOCKER删除不需要的资源

docker system prune [OPTIONS]

--all , -a      Remove all unused images not just dangling ones
--filter        Provide filter values (e.g. ‘label==')
--force , -f    Do not prompt for confirmation
--volumes       Prune volumes

查看磁盘使用情况

docker system df

删除未被正在运行容器使用的卷

docker system prune -a --volumes

基于alpine镜像,修改容器时区的处理方式

编辑Dockerfile,内容如下:

FROM alpine:3.9
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk update && apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone \
&& apk del tzdata

如果使用其他基于alpine的镜像,例如nginx:alpine等等,也可以参照如上方式处理

TOMCAT的一些小配置

修改tomcat默认首页

在server.xml的<HOST></HOST>段中间,新增如下内容:

<Context path="" docBase="/var/www/html/" debug="0"/>

nginx反向代理HTTPS后,tomcat的一些补充配置

在server.xml的<HOST></HOST>段中间,新增如下内容:

<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto"
protocolHeaderHttpsValue="https"/>

DOCKER下玩MySql(MariaDB)的一些小坑

实际开发过程中,开发小伙伴一般都用的是WINDOWS环境,大小写就是个非常讨厌的问题。下面用个笨办法解决这个问题。

先跑起来一个MySql容器

docker-compose.yml如下:

version: '3'
services:
        mysql:
                image: mysql:5.7
        ports:
                - 3306:3306
        volumes:
                - ./mysql-data:/var/lib/mysql
                - ./mysql:/etc/mysql

将容器运行,编辑./mysql下的my.cnf或者相关配置文件,针对大小写敏感,添加如下项:

[mysqld]
lower_case_table_names = 1

然后重启容器,建议使用如下命令:

docker-compose down && docker-compose up -d

这时候,小伙伴们就可以愉快的使用数据库了

mariadb/MYSQL时区问题的解决

在mysqld段增加

default-time-zone = '+8:00' ## 修改数据库时区

切记,必须重置数据库,即删除数据库卷才可以

DOCKER下遇见的时区问题

JAR包的时区问题:

Dockerfile中的CMD段如下:

CMD ["java","-jar","-Duser.timezone=GMT+08","-Xms256m","-Xmx256m","xxx.jar",">>/dev/null","&"]

docker-compose.yml的volumes段如下:

volumes:
- /etc/localtime:/etc/localtime:ro

如果直接在docker-compose.yml直接运行jar包,command段要采用如下写法:

command java -Xms256m -Xmx256m -Duser.timezone=GMT+08 -jar xxx.jar

MYSQL遇见的时区问题

my.cnf中[mysqld]段增加如下:

default-time-zone = '+8:00'

docker-compose.yml中的volumes段增加如下:

/etc/localtime:/etc/localtime:ro

environment段增加如下

TZ=Asia/Shanghai