Docker复习备忘

发布于 2021-09-29  1635 次阅读


Docker Windows使用wsl后端可以提高性能

端口号映射:

-p xxx[宿主机口号]:xxx[docker容器内端口号]

当宿主机内使用非0.0.0.0 Listen的时候,可能导致宿主机转发来的连接断开,所以如果宿主机内可以curl到内容,但是宿主机浏览器显示socket hang up以及empty_response错误的时候,很可能就是宿主机内listen的IP不对,用0.0.0.0监听所有来源地址即可。

把容器名和镜像名取同一个 然后commit xxx xxx即可把容器状态同步给镜像文件了

Dokerfile编写:

每一句都会生成一个中间缓存,所以不变的尽量靠前放,经常变化的比如入口点,复制文件之类的往后放。但是也要注意不要搞错依赖关系致使中间出错。

Dockerfile进行build的时候需要很多错综复杂的国外网络地址,所以与其来回折腾换源提速,还不如直接用一个VPN暂时把所有流量走国外加速VPN,可以解决很多缺失问题。

pip安装python模块的时候经常会遇到一些.h文件缺失,这种情况一般是用yum来安装缺少的xxx-dev xxx-devel之类的支持库即可解决。

COPY . .可以和WorkDir配合,WorkDir指定的是容器内的文件系统路径,而COPY的第一个参数是相对于Dokerfile放置的目录,第二个是基于WorkDir参数的容器内路径,注意顺序。
用.dockerIgnore排除掉.git应该可以避免不需要的git历史占据的空间。

如果dockerfile构建的时候需要清理每一句的缓存,可以在docker后添加--no-cache参数来不用缓存彻底从头构建

vscode有一个docker插件可以浏览修改docker内部 不过我觉得还是用VI做小修小改更顺手。不过拿来检查docker内的文件是否正确更新是个好东西。

vscode带的DOKERFILE语法格式识别还不错,右键就可以构建



点击数:241


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。