# Docker - **Criação de ambientes isolados (container)** - São ambientes que não vão interferir no funcionamento de outras tecnologias ou ferramentas do servidor. - **Containers expõem portas para comunicação** ### Principais conceitos - **Imagem** - São serviços, ferramentas ou tecnologias que podem ser colocadas dentro de containers. Exemplos: PostgreSQL, MySQL, Redis. - **Container** - Um Container é uma instância de uma imagem. - **Docker Registry (Docker Ruby)** - Registro onde se localizam as imagens do Docker. - **Dockerfile** - Receita de uma imagem. ### Exemplo de inicialização ```dockerfile= # Partimos de uma imagem existente FROM node:10 # Definimos a pasta e copiamos os arquivos WORKDIR /usr/app COPY . ./ # Instalamos as dependências RUN yarn # Qual porta queremos expor? EXPOSE 3333 # Executamos nossa aplicação CMD yarn start ``` ### Comandos Docker CMD ```dockerfile= # Criando uma instância # --name <image_name> # -e <environment_variables=example> # -p <local_port:container_port> # -d <image:version(optional)> docker run --name example_posgres -e POSTGRES_PASSWORD=ex -p 5432:5432 -d postgres # Container e status docker ps # Listar todos os containers e status docker ps -a # Logs docker logs <id_image> # Iniciar docker docker start <id_image/name_image> ``` --- #### Imagens para docker https://hub.docker.com/search?q=