# Docker > 你的诺亚方舟 如果你经常写代码, 你的代码可能会遇到以下玄学情况: - 今天能跑/明天报错 - linux能跑/windows报错 - windows 10家庭版能跑专业版报错 - 你能跑, 审稿人说你代码报错 为了对抗世界的不确定性因素的恶意干扰, 你需要把代码用docker包好了给别人. ![](https://thingsolver.com/wp-content/uploads/docker-cover.png) 如果你用过虚拟机的话, 那么Docker思路也很类似, 可以认为是轻量的/可集中管理的虚拟机. Docker可以根据image生成虚拟环境容器,将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台上。那么效果就是我在北京丰台用macbook Pro写的代码在哥伦比亚麦德林地区的戴尔7740机器上都能免配置跑完全一样的程序. 下面是个容器界面: 绿色的是正在运行的, 灰色的是暂停的 ![image-20200821112514418](https://raw.githubusercontent.com/weipeng0098/picture/master/20200821112537.png) 作为一个刚刚入门的人, 推荐以下教程即可达到刚刚能用的程度, 可以参考以下学习途径推荐: [docker知乎教程](https://zhuanlan.zhihu.com/p/23599229) [dockerfile官方教程](https://docs.docker.com/engine/reference/builder/) [dockerfile官方好习惯](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) 另外在容器(理解为linux虚拟机)中运行ssh服务器, 那么就可以像登录远程服务器一样使用了.