直接回答:镜像体积基本都由 RUN、COPY、ADD 产生,先用 docker history <镜像> 找出最大的那几层,再把多条命令合并成一层、在同一层里清理缓存,镜像通常能小一大半。
只有 RUN, COPY, ADD 会使镜像的体积增加
这个可以通过命令 docker history image_id 来查看每一层的大小。
瘦身方法
了解了镜像构建中体积增大的原因,那么就可以对症下药:精简层数或精简每一层大小。
- 精简层数的方法有如下几种:
- 精简每一层的方法有如下几种:
- 使用合适的基础镜像(首选alpine)
- 删除RUN的缓存文件
第一步,先运行 docker ps 查看容器id
1 | docker cp 容器id:/etc/nginx/conf.d /opt/dockerFiles/nginx |
1 | sudo docker run -p 9014:9014 -v /opt/dockerFiles/src:/opt -v /opt/dockerFiles/nginx:/etc/nginx/conf.d -e TZ="Asia/Shanghai" --name='sf6' sf6image:1.0.0 /usr/local/sbin/run.sh & |
第一步、192.168.1.100:8088/rlx_sf6 能转发到咱们服务器ip:9014
第二步、修改docker里nginx的配置,
1 | ``` |
host.docker.internal
通过host.docker.internal可以从容器访问到主机,仅仅限于安装有dockerdesk的宿主机
这个是网关gateway.docker.internal
如果docker里需要修改hosts文
1 | docker run -d --name test1 --add-host www.baidu.com:122.231.23.14 local/test |
docker里面发送https请求报错
去宿主机**/etc/ssl/certs/里面找到 ca-certificates.crt,然后复制到容器的/etc/ssl/certs**里
这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。