最近在学习docker,初步理解了镜像和容器的概念,但看文档和一些使用案例还是有一些地方比较迷惑。
按照docker的介绍,是可以基于基础镜像打包的,只要你有一个dockerfile就能在另外的机器上生成一模一样的环境和依赖,那我可不可以用docker来把我现在mac上的各种开发环境和工具都打到镜像里,比如webstorm,chrome,等各种命令行的或可视化ide的工具,如果这样可以的话,那不就相当于有了一个云系统了吗,我换了一台新机子,不用在重新装各种工具和环境,也不用在乎是什么系统,只要pull 这个镜像不就行了?还是说docker只能打包那些命令行形式的依赖和应用?这一块有些困惑
ringa_lee2017-04-25 09:04:01
不可能,首先,Docker 不是一种新技术,而是很多老技术的打包组装,你可以认为这就是一个 chroot 加强版,而且严重依赖 Linux 内核,Linux 就是内核+软件包,而 Docker 则是打包了软件包文件系统,至于内核则是共享的,所以,题主所说的把 Mac 上各类开发环境打包到镜像是不可能的。关于 GUI 打包到 Docker 镜像中,理论上来说可行,但是实际上不可能,因为 Docker 只做了标准输入标准输出和标准错误的控制台显示,没有 GUI 图形界面的输出方式。
给我你的怀抱2017-04-25 09:04:01
你想错了, 应该是把你需要的工具做成一个镜像。
然后在需要的环境pull 就行了。 然后利用git之类的工具管理代码(dokcer只管理开发环境工具)。
至于楼上说的GUI, 现在已经有方法解决了, 相关资料可以搜索docker GUI 或 docker x11