大家好!
我真的很想马上开始这个话题,但是最好讲一些我的故事:
参赛作品
我是一名程序员,具有在服务器上开发前端单页应用程序,scala / java和nodejs的经验。
在相当长的一段时间内(恰好是两三年),我认为docker是天上来的甘露,而且是一个非常酷的工具,绝对每个开发人员都应该能够使用它。 因此,每个开发人员都应在本地计算机上拥有docker。 关于我的意见,您浏览同一小时的空缺是什么? 每秒钟都有关于docker的提及,如果您拥有docker,这将是您的竞争优势;)
在途中,我遇到了许多人,他们对docker及其生态系统的态度不同。 有人说这是保证跨平台的便利。 第二个人不理解为什么他们应该在容器中运行以及从中获得什么收益,第三个人根本不在乎,他们也没有蒸煮(只是编写了代码然后回家了-顺便说一句,我很羡慕他们:))
使用理由
为什么要使用docker? 可能是由于以下原因:
- 数据库启动,有99%的应用程序使用它们
- 启动nginx以分发前端,并代理到后端
- 您可以将应用程序打包到Docker映像中,因此我的应用程序可以在docker所在的任何地方运行,并且可以立即解决分发问题
- 开箱即用的服务发现,您可以执行微服务,每个容器(连接到公共网络)都可以通过别名轻松访问另一个容器,非常方便
- 创建一个容器并在其中“玩”很有趣。
我一直不喜欢docker的地方:
- 为了使我的应用程序正常工作,服务器上需要使用docker本身。 如果我的应用程序在jre或nodejs上运行并且它们的环境已经在服务器上,为什么我需要这样做?
- () , docker , - registry https, docker cli https. … , ,
docker save
scp … . "" , docker-compose
. . . . Docker-compose
, . , . .- , Dockerfile , , , dockerhub , -
docker-compose
. , docker , HR : " docker " - docker : postgresql, kafka, redis. , , . , . , docker, , - ?
- . , docker volume data container
deprecated
? , uid gid id , , , root. volume
, /usr/*
uid gid . , : " ?"
, docker- : , , Makefile, docker . docker-compose, docker. docker-compose up
, , build
, . , — . docker.
Ansible
( ), DevOps , , docker. :
- docker iptables ( daemon.json)
- docker
- docker daemon , ,
- docker
- docker , Ansible
— Ansible. - , . ! : Ansible docker , , ., , ! — Makefile docker-compose , yaml . loop
, when
, etc.
Docker
ssh . , "" . , , VirtualBox. ( ), , . , , docker .
postgresql:
ssh -L 9000:localhost:5432 user@example.com
. , postgresql, c docker . docker, . — ssh !
, SSH — VPN! OpenVPN VPN, . !
, AWS, GoogleCloud , , ! , , . , gcloud, , .
localhost Alpine docker . - , .
: virtualbox. docker .
docker
, , docker . Docker docker . docker docker .
-, docker ?
— , docker , . , dockerhub ? , nginx, 100500 . nginx, docker nginx .
tgz, - docker, Dockerfile tgz, , tgz. , docker , , tgz . docker
: docker registry, S3 google drive/dropbox
Docker CI
, , . , , . - , ( — ).
docker CI . — docker ? , Ansible , nodejs, php, jdk, ssh . , ?
, , docker . CI docker :
- docker . dockerfile.
- 90%, - ssh , , docker .
- , . , , — .
docker ( — , xD ). java , . nodejs , nvm.
docker , ( , ). "" , . , , CI, . DevOps .
docker , . . , .
docker : docker
- docker, :
- docker
- , Dockefile docker-compose
PS:
, , !