在百度百科上看了一阵,专业术语太多,我还是没有真正搞懂。谁可以简单解释一下,比如它到底解决了什么问题?
刚才看了几位大神的回答,可能是我接触太少吧,感觉仍然不是非常清楚。是不是它相当于一个虚拟机,你把软件部署到那个虚拟机上面?性能不是差了很多吗?如果说它利用的还是宿主机器的资源,那么这跟直接运行在宿主机器就没有区别?如果宿主机器缺少它的依赖库,它依然运行不起来。
天蓬老师2017-04-25 09:05:25
docker には 2 つの主要な貢献と、そのソフトウェア配信への影響があります。
2 つの主要な貢献:
1. 実行環境とコードをボックスにカプセル化する ミラー ウェアハウス 。コードウェアハウスに似た方法で配布されます
ソフトウェア配信の影響:
さらに、仮想化と比較すると、仮想化はハードウェアとシステムの仮想化ですが、コンテナはアプリケーションの仮想化であり、モジュール (関数) の形式および環境変数 (関数のパラメーター) を通じて、この仮想アプリケーションの実行状態を変更します。 )。同時に、オーケストレーション ツールを使用して、非常に大規模で複雑なサービスを組み立てることができます。
伊谢尔伦2017-04-25 09:05:25
まず第一に、docker は仮想マシンではありません。 !いいえ! !いいえ! !
多くの人が mysql apache などで docker を開いたことがあります。これは間違っています!
Docker はシングルスレッド プログラムです。通常、Docker コンテナーは 1 つのアプリケーションしか開くことができないため、Docker を仮想マシンとして使用しないでください。
第二に、docker は理論的にはカプセル化されたサンドボックス環境であり、すべての変更は環境内で行われ、システムには影響しません (もちろんマウントできます)。
これは Windows 用のグリーン ソフトウェアのようなもので、インストールは必要なく、ダウンロードして使用するだけです。
Docker は、Linux 用のグリーン ソフトウェア パッケージャーとみなすことができます。イメージの作成後は、Docker を使用して任意のマシンで実行できます。多くのコンパイルは必要なく、高速です。
わかりましたヽ( ̄д ̄;)ノそれでも理解できないなら負けを認めます。 。 。
phpcn_u15822017-04-25 09:05:25
たとえば、 Ubuntu
,服务器用的是CentOS
,那么此时你要把项目部署到服务器上,可能在环境的配置上就要花费不少的时间了。又或者比如你用的MySQL
,放在以前每次重装一次系统或者换一个环境,你就要把你的环境重装一次,东西越多花费的时间越多。
而使用Docker
,你只需要一条命令,你就可以在你的Ubuntu
上再运行一个“新的环境”,当然这一个环境还是基于你现有的环境的,也就是说实际上共享的还是同一套资源,但是这套环境里面已经有了你需要的东西。
你需要MySQL
,那就安装一个带MySQL
的镜像, 然后启动一个容器。
你需要Redis
,那就安装一个带Redis
的镜像, 然后启动一个容器。
你需要..., 那就..., 然后...。
当然你也可以在别人的基础之上,对容器进行修改后,比如添加了一些你自己的软件或修改配置文件,然后再commit
,这样你就把这个容器制作成了一个镜像,以后你可以用这个镜像创建出N个一模一样的容器。
比如你要学习搭载Redis
集群,那么你可以下载一个Redis
的镜像,然后启动容器,把集群的配置设置好后,提交这个容器生成镜像,再根据这个镜像运行出6个或更多容器,这样一个集群就搭起来了。
而且Docker
を使用する場合、使用するリソースはほとんどありません。
習慣沉默2017-04-25 09:05:25
つまり、Docker でできることは次のとおりです。他のテクノロジーと比較して、より多くのアプリケーションを同じハードウェア上で実行できるようになり、開発者がいつでも実行できるコンテナ化されたアプリケーションを簡単に構築できるようになります。これにより、アプリケーションの管理と展開のタスクが大幅に簡素化されます。
滿天的星座2017-04-25 09:05:25
環境を構築して、さまざまな依存関係をインストールしてからコードを実行するのは面倒ではありませんか?依存関係のインストールおよび構成プロセス中にエラーが発生した場合、コードは実行できなくなる可能性があります。Docker は、環境全体をイメージにパッケージ化して配布できる仮想化ツールです。使用する必要がある場合は、それをプルダウンするだけです。仮想マシン イメージをダウンロードしてローカルで実行するのと同様に、イメージをダウンロードして実行します。