发布于 2026-01-06 4 阅读
0

Docker 的入门课程 目录 Docker 的必备条件 Botando a mão na Massa Docker Compose Conteúdo 补充 结论

Primeiros passos no Docker

目录

目标

要求

O que é

CLI 执行 Docker

Botando a mão na massa

Docker Compose

互补内容

结论

简单的形式和方向的发展,是Docker用户的最爱。 Nada de termos complicados, apenas uma abordagem fácil para que você possa usar container semstress。我们已经开发了Docker的必要条件和算法项目,但我们并没有考虑到这一点。您可以简单地了解应用程序的操作过程和容器过程。

目录

目标

Docker 的主要目标和主要目的是推动Docker项目的发展。假装您的应用程序没有上下文,但我们会解释一下与互联网有关的不同形式,因此您可能会遇到一些实际问题,请以示例为例。 Esse artigo conciliado a conteúdo teórico que vou disponibilizar por links durante e ao te dar uma boa base do que é essa ferramenta e como ela funciona por baixo dos panos, ao fim de tudo eu espero que você seja capaz de dar seus primeiros passos criando container德都多🐳。

要求

Ter instalado:

O que é

Dockerfile

在配置方面,我们首先介绍一下Docker 镜像。请注意不要使用容器来配置应用程序。请参阅dockerfile手册中的列表或通过 montar 算法(不适用)作为 ligar es algo na tomada 的说明。

Docker 镜像

一个Docker 镜像是一个应用程序功能的集合体,它可以帮助您解决代码、图书馆、依赖和其他功能的问题。 Seu应用程序em uma 照片。

容器

想象一下,如果你在当地举办独立的节日,那么你可以在家里做一些事情,比如颜色和颜色。很快,节日来临了,您就可以开始使用它了,然后将其放入容器中,然后再重新启动应用程序功能。解决了“Na minha máquina funciona”的常见问题。

除了容器之外,容器还包括软件级别的环境、端口和隔离,以便允许执行和运行应用程序,这些应用程序依赖于不同的平台,从而在不同的平台上保持一致。可以灵活地进行开发、应用程序的植入和管理,确保应用程序的执行速度保持一致、独立于基础设施。

体积

简而言之,卷没有Docker的上下文,因此允许在主机和操作系统容器之间进行比较和持久化。提供设备管理和容器相关独立形式的信息。

例如,您可以使用银行的容器,将银行的卷存放在银行中,以保存银行的信息。Docker环境中的灵活性和一致性

撰写

O docker 吉祥物 eo compose 吉祥物

Docker Compose可以简化各种容器的 Docker 组合应用程序的管理。允许定义、配置和执行各种服务、重新编写卷YAML,并方便地执行环境复杂操作。

CLI 执行 Docker

Docker Desktop 的存在主要是为了进行配置、配置、配置、设置以及与用户的 pelo 终端进行交互,可以通过以下方式回复您的互联网问题:您可以使用命令格式来配置桌面应用程序的配置,并推荐使用文档。这个主题是假装最基础的指挥和最后的任务。

docker --help
Enter fullscreen mode Exit fullscreen mode

简单来说,最重要的是,--helpDocker 中的所有操作都非常重要,并且您可以将这些操作与其他操作一起使用,而不需要任何其他操作。科曼多温度

您的所有指挥官都将在新版本中使用,以便您可以体验到指挥官的使用体验。但无论怎样,我们已经正式宣布了对未来作战行动的支持(como docker pse outros),并为未来的未来做好了准备。

Para gerenciar containers:

创建并执行容器:

docker container run nome-da-imagem
Enter fullscreen mode Exit fullscreen mode

执行时列出容器:

docker container ls
Enter fullscreen mode Exit fullscreen mode

列出待办事项操作系统容器(包含 parados):

docker container ls -a
Enter fullscreen mode Exit fullscreen mode

辅助容器:

docker container stop nome-ou-ID-do-container
Enter fullscreen mode Exit fullscreen mode

Iniciar um container parado:

docker container start nome-ou-ID-do-container
Enter fullscreen mode Exit fullscreen mode

去除剂容器(deve estar parado):

docker container rm nome-ou-ID-do-container
## com a opção '-f' ele força a parada do container e em seguida o remove
Enter fullscreen mode Exit fullscreen mode

Para Gerenciar Imagens:

Listar imagens locais:

docker image ls
Enter fullscreen mode Exit fullscreen mode

Docker Hub 的 Baixar uma 镜像:

docker pull nome-da-imagem
Enter fullscreen mode Exit fullscreen mode

构建 Dockerfile 的一部分的镜像:

docker build -t nome-da-imagem caminho-do-Dockerfile
Enter fullscreen mode Exit fullscreen mode

移除 uma imagem 本地:

docker rm nome-da-imagem
Enter fullscreen mode Exit fullscreen mode

Para Gerenciar Redes:

Listar redes Docker:

docker network ls
Enter fullscreen mode Exit fullscreen mode

创建 Docker 网络:

docker network create nome-da-rede
Enter fullscreen mode Exit fullscreen mode

连接 um 容器和 uma rede:

docker network connect nome-da-rede nome-ou-ID-do-container
Enter fullscreen mode Exit fullscreen mode

Desconectar um 容器 de uma rede:

docker network disconnect nome-da-rede nome-ou-ID-do-container
Enter fullscreen mode Exit fullscreen mode

Outros comandos úteis:

容器日志:

docker logs nome-ou-ID-do-container
Enter fullscreen mode Exit fullscreen mode

容器的详细信息:

docker inspect nome-ou-ID-do-container
Enter fullscreen mode Exit fullscreen mode

Botando a mão na massa

dockerfile até 或容器的 mostrando 或 caminho 映像

这篇文章主要介绍了ReactViteExpressPostgreSQL等技术

应用程序存储库链接🐳

你的第一个 Dockerfile

没有任何指示可以提供任何有关烹饪功能的./front信息,但您可以定义烹饪或意大利面所需的图像。 O arquivo tem a seguinte estrutura:.dockerignore.gitignoreDockerfile

FROM node:18.17.0-alpine
WORKDIR /app
COPY package*.json ./
COPY . .
RUN npm install
RUN npm run build
EXPOSE 8080
CMD [ "npm", "run", "preview" ]
Enter fullscreen mode Exit fullscreen mode

FROM

Aquié o ponto departida da sua imagem, onde você 定义了一个 seu 容器的基础,并且它是一个通用的镜像,并且它是一个node有意义18.17.0-alpine的镜像alpine,用于构建使用 Alpine Linux 的基础镜像。该图像是为了提高效率而流行、快速地在容器中执行应用程序的环境级别。

WORKDIR

定义容器的工作方向/app。这对于执行命令的人员来说非常重要。

COPY

Copia o arquivo package.json(e qualquer arquivo que comece com "package") do diretório local para o diretório /appno container.

第二步COPY复制所有本地目录或无容器目录的结尾/app

RUN

执行容器操作npm install,根据具体情况安装package.json

接下来RUN执行或命令npm run build构建应用程序。请务必使用编译和准备应用程序来执行。

EXPOSE

有关容器应用程序的信息,请参阅端口8080。这是一个自动打开的门,我们提供有关该门的信息,以便您可以在以后的应用程序中使用该图像。

CMD

定义一个命令来执行所有的容器基础图像以启动。下一步,您npm run preview将启动一个应用程序以获取所需的服务。

本文将作为您使用时的基本说明、其他问题和建议,为您提供有关基本技巧的文档。

Configuração do Vite

没有任何应用程序8080需要配置或配置vite.config.ts。您可以根据Vite文档推荐配置 以外的配置。

我可以参与项目的配置。

Criando a imagem do front

很快,Dockerfile我们就开始为我们的未来做准备。如果您没有任何主题,那么您CLI do Docker将无法通过终端访问直接操作./front并执行后续命令:

docker image build -t front .
Enter fullscreen mode Exit fullscreen mode
  • -t-tag可以使用图像名称和tag图像名称,例如,使用图像名称时,front可以使用与图像名称不同的方法,或者使用第二个参数来tag识别图像,以方便识别。front:nome-da-tagtagfront:1.0
  • 没有终端 eu estou no diretório ./frontque é onde está o dockerfileé por isso que só uso o .(ponto)。

如果您使用了 seu 终端,则可以使用 Docker 来执行以下操作Dockerfile

gif monstrando os comandos que forammostrados antes

没有 gif 可以快速构建图像,因为没有我的电脑可以在缓存中构建图像,也没有任何问题。

Criando o container do front

在前面的图像中,将其放入容器或子容器中,然后在没有 seu 终端的情况下执行命令:

docker container run -d -p 8080:8080 front
Enter fullscreen mode Exit fullscreen mode
  • -d: É usado para executar um container em segundo plano, ou seja, em modo “detached”。完全执行容器 Docker,并在最初的计划中启动。
  • -p 8080:8080:将 porta 8080 do 容器与 porta 8080 do 主机进行连接。
  • front: 是我们使用的图像名称或容器。

图片来自comandos acima citados

访问http://localhost:8080并在 seu navegador já vamos conseguir acessar o front da nossa aplicação, mas ainda falta o nosso back e banco esta no ar。

图片正面没有ar

Criando uma network

容器之间的联系的大多数图解

Dockerdocker network允许容器隔离。由于 Docker 是容器通信的基础,因此可以保证分配系统中不同组件之间的隔离、安全和灵活性。

docker network artigo
Enter fullscreen mode Exit fullscreen mode

O nome da rede vai ser artigo😁.

Baixando a imagem do Postgres

您可以通过以下方式获取 Postgres 与 Docker Hub 的图像。首先,在 seu 终端中执行以下命令:

docker pull postgres
Enter fullscreen mode Exit fullscreen mode

Criando um para persistência de bados 卷

银行和银行容器的执行前,是存放数据的重要因素。请确保Postgres 的所有数据或用于interrompido 或exclído 的容器。在 seu 终端中执行以下命令:

docker volume create pgdata
Enter fullscreen mode Exit fullscreen mode

O nome do volume vai ser pgdata.

执行 Postgres 容器

com 卷 criado,agora você pode executar o 容器 Postgres。首先,在 seu 终端中执行以下命令:

docker container run -d --name postgres --network=artigo -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_HOST=postgres -e POSTGRES_DATABASE=postgres -e POSTGRES_PASSWORD=password -v pgdata:/var/lib/postgresql/data postgres
Enter fullscreen mode Exit fullscreen mode
  • -d:在第二个计划中执行容器操作。
  • --name postgres:com essa opção,você pode dar um nome ao seu 容器。 Neste caso,estamos nomeando o 容器como“postgres”。
  • --network:在执行过程中使用特定的容器开发连接。
  • -p 5432:5432:将 5432 端口的容器与主机的 5432 端口进行映射。 5432 门和 Postgres 门。
  • -e POSTGRES_USER=postgres:可以通过 POSTGRES_USER 来定义环境变量user。由userPostgreSQL 提供postgres
  • -e POSTGRES_HOST=postgres:正常情况下,请参考 PostgreSQL 银行托管主机的执行情况。您可以在 Docker 容器中执行 PostgreSQL、容器名称POSTGRES_HOST或容器 IP,依赖于通信配置。
  • -e POSTGRES_DATABASE=postgres:我们对银行的具体名称进行了操作,并提供了连接。
  • -e POSTGRES_PASSWORD=sua-senha:可以使用 POSTGRES_PASSWORD 来定义环境变量。
  • -v pgdata:/var/lib/postgresql/data:可以定义前部的pgdata卷或本地 Postgres 服务器的数据。
  • postgres:它是容器中使用的图像名称。

  • -d(你--detach

  • -p(你--publish

  • -e(你--env

  • -v(你--volume

Criando a imagem do back

如果没有任何指令,则无法Dockerfile启动应用程序。/backEXPOSECMD

FROM node:18.17.0-alpine
WORKDIR /app
COPY package*.json ./
COPY . .
RUN npm install
EXPOSE 3000
CMD ["npm", "run", "start"]
Enter fullscreen mode Exit fullscreen mode

没有终端、访问或直接./back执行或后续命令:

docker image build -t back .
Enter fullscreen mode Exit fullscreen mode

Criando o container do back

Segredo algum,vamos fazer 或 mesmo processo que fizemos com 或容器front。返回图像后,将其放入容器或容器中,然后在没有 seu 终端的情况下执行命令:

docker container run -d --network=artigo -p 3000:3000 back
Enter fullscreen mode Exit fullscreen mode

gif com 示例 示例

集市上的应用程序功能已完成,可以访问http://localhost:8080并删除和删除。

Docker Compose

与 com 容器相关的大多数图像

Podemos notar a Quantidade de comandos no end que que essa pequena aplicação fosse ao ar, com o compose vamos encurtar todo esse processo colocando tudo em um so lugar, facilitando o nosso desenvolvimento. A estrutura do compose.yamllembra um pouco o Dockerfile

version: '3'
services:
  back:
    build: ./back/.
    ports:
      - 3000:3000
    depends_on:
      - postgres
  front:
    build: ./front/.
    ports:
      - 8080:8080
  postgres:
    image: postgres:latest
    environment:
      POSTGRES_USER: postgres
      POSTGRES_HOST: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DATABASE: postgres
    volumes:
      - api-postgres-data:/var/lib/postgresql/data
    ports:
      - 5432:5432
volumes:
  api-postgres-data:
Enter fullscreen mode Exit fullscreen mode
  • version: '3':具体来说,Docker Compose 的语法是美国发送的。 Neste caso,同第 3 章。
  • services:定义要执行的服务。
    • back:配置“返回”服务。
      • build: ./back/.:具体而言,“后退”服务的图像是直接构建部分的./back/
      • ports: - 3000:3000:将 porta 3000 do 容器映射到 porta 3000 do 主机。
      • depends_on: - postgres:Indica que o serviço“back”depende do serviço“postgres”,garantindo que o serviço“postgres”seja iniciado antes do serviço“back”。
    • front:配置“前端”服务。
      • build: ./front/.:具体而言,“前线”服务的图像是直接构建的./front/
      • ports: - 8080:8080:Mapeia a porta 8080 do contêiner para a porta 8080 do 主机。
    • postgres:配置“postgres”服务。
      • image: postgres:latest:美国官方最近发布了 PostgreSQL 没有 Docker Hub 的图片。
      • environment::定义 PostgreSQL 配置环境变量。
        • POSTGRES_USER, POSTGRES_HOST, POSTGRES_PASSWORD, e POSTGRES_DATABASEsão configurados para criar um usuário, host, senha e banco de bados no PostgreSQL.
      • volumes: - api-postgres-data:/var/lib/postgresql/data:Mapeia um 卷 chamado“api-postgres-data”是 PostgreSQL 容器的直接操作。
      • ports: - 5432:5432:将 5432 端口映射到 5432 端口主机上。volumes::
  • 定义 um 卷 chamado“api-postgres-data”。此卷用于 PostgreSQL 数据库的持久化,允许在数据库中保留内存信息或用于删除的容器。

Compose 执行前的准备工作是完成容器前面的操作,而不是与端口冲突。无需终端访问或直接进行项目,即可使用compose.yaml或继续使用:

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

gif com o comando do exemplo

建造演示的过程,是建造 3 个容器的关键,没有任何速度可以建造现金。

Espero que você tenha percebido or quão maravilhoso é o Compose, a quantidade de trabalho que ele te poupa éaburdo. Apenas com comando ele cria a imagem do front and back, cria umcontainer apartir da imagem criada para o front, back e para o postgres e ainda cria uma network para que oscontainer possam se comunicar entre eles.存在多种功能之外的选项以及无法撰写的选项,因此您可能会感到好奇,或者无法做到这一点。

互补内容

Jeferson Fernando提供了一份官方文档,其中包含与朋友一起进行的研究过程,以及有关LINUX技巧的现有信息。完美的解决方案  :Livro Descoplicando o Docker

Treinamento completo no Youtube :
Descomplicando Docker

Para quem é muito agoniado, tem or resumo:
Tudo o que você precisa saber sobre docker em 2h

Para quem quer se especializar um pouco mais:
Roadmap Docker(英文)

结论

Esse conteúdo foi o resultado de um aglomerado de anotações andabstrações que tive durante meu processo de estudo sobre docker, aparte que mais bati cabeça foi com o network, durante os meus testes eu ficava tentando fazer os container se comunicarem entre eles, mas um não Encontrava o outro,foi uma grande dor de cabeça,mas no fim deu tudo certo。阿尔古玛斯解释了如何发送正确的信息,因为没有直觉可以帮助您了解有关阿尔古斯的主题。

请注意,请明确错误,请提供反馈,请告诉我没有Twitter或没有 Discord da He4rt的情况。

Obrigado por ler ate aqui.

文章来源:https://dev.to/clintonrocha98/primeiros-passos-no-docker-m0k