Olá pessoal!
Eu realmente quero começar o tópico imediatamente, mas é melhor contar um pouco da minha história:
Entrada
Sou um programador com experiência no desenvolvimento de aplicativos de página única front-end, scala / java e nodejs no servidor.
Por algum tempo (levaram exatamente de dois a três anos), eu acreditava que o docker é um maná do céu e uma ferramenta muito legal em geral, e absolutamente todo desenvolvedor deve poder usá-lo. E daí resulta que todo desenvolvedor deve ter janela de encaixe na máquina local. Qual é a minha opinião, você olha através das vagas que são postadas no mesmo hh. A cada segundo, há uma menção sobre o docker e, se você o possui, esta será sua vantagem competitiva;)
No caminho, encontrei muitas pessoas, com suas diferentes atitudes em relação ao estivador e seu ecossistema. Alguns disseram que isso é uma coisa conveniente que garante multiplataforma. O segundo não entendeu por que eles deveriam rodar em contêineres e que lucro disso, o terceiro não se importou e não fumou (apenas escreveu o código e foi para casa - eu os invejo, a propósito :))
Motivos de uso
Por que eu usei o docker? Provavelmente pelos seguintes motivos:
- lançamento do banco de dados, 99% dos aplicativos os utilizam
- inicie o nginx para distribuir front-end e proxy para back-end
- você pode compactar o aplicativo em uma imagem do docker, para que meu aplicativo funcione onde quer que o docker esteja, o problema de distribuição será resolvido imediatamente
- descoberta de serviço pronta para uso, você pode executar microsserviços, cada contêiner (conectado a uma rede comum) pode facilmente chegar a outro por pseudônimo, muito conveniente
- é divertido criar um contêiner e "brincar" nele.
O que eu nunca gostei sobre o docker:
- para que meu aplicativo funcione, o docker em si é necessário no servidor. E por que preciso disso se meus aplicativos são executados em jre ou nodejs e o ambiente para eles já está no servidor?
- () , 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:
, , !