请注意 Docker 的使用情况
从形式上看,Docker(一个平台*)是一种开源软件,可以作为简化的目标、分解过程、植入和执行应用程序。这是一个虚拟化平台和内容的虚拟化平台。 一些软件的总结形式和一些陈词滥调的目标
Na minha máquina funciona.
* Docker pode ser o projeto、ferramenta/plataforma、empresa。 Aqui vamos falar sobre a ferramenta
您可以使用 Node 和 Python 的特定示例,但不能将其作为一个简单的应用程序或应用程序,以便在容器中使用。
Se você for iniciante, talvez alguns pedaços não façam muito sentido. Nesse caso pode deixar um commentário que eu tento explicar da melhor forma possível.
Tudo que eu preciso sabre sobre?
Meu objetivo aqui é simples: 证明所有信息均可用(desenvolvedor),并可使用 a ferramenta da vez。不要假装回应者,只要有声音或有军刀、有反应或有必要。
Docker是什么?
Docker 是一个容器虚拟化平台,允许在操作系统中运行隔离的应用程序。
Pra 补充,你 deixar um subtópico aqui:
O que são contêineres
容器(或容器)是虚拟计算的形式,是我们在操作系统 (SO) 医院中使用的容器,它是 SO 内部的精确数据 - 与虚拟 (VM) 一样 - 可以执行或精确。该容器包含 SO 内核,可快速启动和插入,以及其他便携式设备。主要优势在于允许在隔离环境中执行应用程序,从而保证在与消息相关的情况下执行应用程序。
Quando eu deveria usar Docker
Desde que eu aprendi a usar, a minha resposta é semper .存在一些问题,包括使用过程中的问题,在发展过程中的原则,您可以通过简单的方式使用它来消除迷惑。
Mas Responseendo de forma mais completa, os principais motivos para usar contêineres (na minha opinião) são:
1. 使用公共目标应用程序
解析器列出了逻辑程序的练习列表,以帮助您使用contêineres,seria um pouco de exagero(mas é possível)。
您可以通过网站应用程序进行开发,或者以示例 api 的方式进行操作,最终将其公开为算法形式,将容器封装起来以方便部署(或部署)。
请务必确保所有依赖项的使用 - 考虑包(例如 npm 或 pip)、没有系统操作或已安装的计划的计划 - estarão disponíveis quando chegar a hora da plantação。
2. 帕德罗尼扎或发展环境
O motivo é o mesmo acima, basicamente。您可以使用计算机进行工作(例如,在 Windows 上使用 Linux 或 Windows 笔记本电脑),或者简单地使用设备、应用程序和环境配置来进行简单配置。取消安装程序和特定包。
Por onde começar
安装
没有帖子显示如何安装Windows 来配置Windows,因此您无法重复操作(该链接位于 Docker 容器中)。
如果没有 Linux,请在以下命令中安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
请下载 docker 官方安装脚本并继续执行。该脚本没有安装 WSL 的功能,也没有在 Windows 上识别脚本的功能,建议使用 Docker 桌面安装。
Dica:请安装自动格式的算法服务(以 terraform 为例),然后执行第二个操作。如果没有提示确认,请确保不发生任何情况
yes | sudo sh get-docker.sh
Dockerfile
容器应用程序的基础是构建的Dockerfile。 Esse arquivo pode ser bem Complexo, mas o que você precisa saber é:
从
标志没有开始,o primeiro comando precisa ser o FROM。 Ele é o ponto de partida da sua imagem,定义为 seu 容器的基础。
Uso:
FROM <image>FROM <image>:<tag>
例如,se eu usar
FROM python:3.11
如果您安装了 Python,则可以使用 Python 中的应用程序。
从形式上看,我们可以FROM node:20.3-slim在 Node JS 上应用它。
您可以使用不同的 Dockerfile 来管理来自不同应用程序的不同图像。
Uma coisa que você precisa se atentar,é que as imagens * utilizadas vão ter tamanhos differenterentes,dependendo da quantidade de coisas que tem instaladas。所有图像均已完成,所有图像均已完成,但所有图像均取决于您的-slim需要。
从形式上来说,您可以预先准备好容器中的图像,理想的图像可以是“limpa”,并且可以作为使用工具安装手册。正常情况下,我们不应该预先准备好任何东西,而是使用我们想要的图像-slim。
复制
下一步 - 考虑一下有关预制程序的图像 - 准备好相关文件,以便执行。 Podemos fazer isso usando 或 comando ADD, ou 或 comando COPY.最初和第二个酯类,可以使用副本,可以下载远程文件(在 URL 中)并解压缩压缩文件。
Uso:
COPY arquivoCOPY [arquivo_fonte.py](http://arquivo.py) arquivo_destino.pyCOPY pasta_fonte/ pasta_destino/
您必须定义所有图像内容,这是执行者所必需的。嗯,没有 caso de uma aplicação em python por exemplo, é copiar o requirements.txtalém da Pasta com o seu código(没有 meu exemplo,app/
COPY requirements.txt
COPY app
Voltando para o Node,您已同意并提出.dockerignore。 Semelhante ao.gitignore是一种功能,可定义项目(或面食),并可直接用于图像的开发。 Node é um bom exemplo porque quando instalamos as dependentências do nosso projeto (de um package.json, por exemplo), elas são salvas na Pasta node_modules/, dentro do diretório em que estivermos. Essa 意大利面 pode ser muito grande,por isso podemos criar o arquivo .dockerignorecontro ela:
node_modules/
E depois, quando fiizermos a cópia, saberemos que essa Pasta não estará na nossa imagem
COPY meu_projeto_node
跑步
接下来,依赖于应用程序,需要将其安装为依赖于 seu projeto para conseguir executar (por isso copiamos o requirements.txt, por exemplo)。如果我们使用命令 RUN,请执行命令以执行图像脚本。您可以同时进行多个 RUN 操作,并执行任意操作。
Uso:
RUN comandoRUN comando complementoRUN ["comando", "complemento"]
作为示例安装 Python 项目,可以通过以下方式进行操作 COPY
RUN pip install -r requirements.txt
您可以使用安装在系统中的软件包(例如apt install示例)或执行 shell 的命令。
CMD
此时,您可以配置所有执行命令或执行容器的命令。以示例为例,我们将执行该应用程序。
Uso:
CMD comandoCMD comando complementoCMD ["comando", "complemento"]
Numa 应用程序以 Python 为例,可以简单地执行算法
CMD python app.py
Ou numa aplicação em Node, podemos executar
CMD npm start
嗯,CMD 中最重要的一点是,将命令插入到 Dockerfile 中并执行。例如,se tivermos
CMD python main.py
CMD python app.py
接下来将执行。
您可以通过应用程序精确执行您的命令,使用命令ENTRYPOINT或命令来执行命令。
Commandos Docker
建造
使用 Dockerfile 执行面食应用程序(项目的正常运行,依赖于组织),然后执行命令
docker build [PATH]
如果没有经过任何操作PATH,则实际上无法直接执行 Dockerfile。 Se estiver em outra Pasta, basta passar o seu caminho (algo comodocker build container/
跑步
使用 docker 的主要目的是,您不需要了解更多详细信息,这是一个基本语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
欧盟服装的主要用途如下:
—name: vai definir o nome do seu 容器。 Se não for passado, vai criar com um nome aleatório--volume, ou-v: 允许连接本地 com 和容器--expose, ou-p: 允许在本地系统中出口和映射 seu 容器。 Isso é muito importante caso esteja desenvolvendo serviços web-e:允许在 seu 容器环境中更改环境变量
访问您的容器
完成任务后,您可以单独访问该容器的上下文。
docker exec -it [container] bash
执行命令,然后在容器中交互 shell 并允许使用 Linux 终端。在归档、编辑和执行命令中,我们会进行一些操作。为了解决精确的调试算法问题,您可以使用以下方法来制作容器基础图像,以便在示例中使用容器应用程序(气流容器)。
发布您的图像
这是一个主题,请您继续阅读。
构建我们的图像,并使用图像算法存储库来分配这些图像。植入后,您可以轻松地构建图像,并可以准确地了解执行程序的情况。存在各种存储库,主要推荐如下:
公共登记处
- Docker 注册表:官方允许的存储库,可用于发布图像和访问权限
- Github 容器注册表:também é possível armazenar suas imagens no Github
私人登记处
- Docker 中心:Docker Inc(一家企业,非产品)为个人提供私人服务
- Qualquer nuvem,以 Google Cloud 的 Artifact Registry 为例
完成此操作,即可完成服务的执行,并可参考执行过程中的图像。例如:
docker run ghcr.io/1cadumagalhaes/TESTE_DOCKER:latest
这很重要,因此您可以部署应用程序中的 VM 程序,例如,您可以精确地部署 VM:
- 安装 Docker
- 执行命令以参考存在的图像
可以预先进行克隆或设置。
Docker Compose
您可以根据多个容器的需要来定义和执行应用程序。您可以使用 YAML 来配置应用程序的服务定义,并在您的命令中执行。
开始使用多个容器的应用程序时,请考虑使用多个实用程序来定义一个容器中的应用程序。您可以将其定义为声明形式的服务定义。例如,我们使用 Python 进行开发并使用 API 进行开发,并通过环境变量进行算法配置。执行容器或容器,执行命令或执行命令:
docker run \
-v ./output:/app/output \
-p 8080:8080 \
-e NAMESPACE='staging' \
-e LOG_LEVEL='debug' \
-e API_KEY='abc123' \
--name meu_python \
.
Claro que podemos salvar tudo isso num shell script (ou simplesmente Decorar o comando),但请考虑不便。 Ao invés disso, podemos definir um docker-compose.yamlassim:
services:
meu_app:
buid: .
ports:
- "8080:8080"
environment:
- NAMESPACE: 'staging'
- LOG_LEVEL: 'debug'
- API_KEY: 'abc123'
volumes:
- ./output:/app/output
E depois de configurar esse arquivo, podemos executar nossa configuração com
docker compose up
您可以使用我们的社区down和restart其他社区up,以及不同的社区,例如:
-f: 不同的情况下docker-compose.yaml,您可以选择不同的方式-d:执行“desacoplados”操作,或依赖于终端和背景中的会话。
Usando Hot Reload com Docker
Muitas vezes, quando estamos desenvolvendo precisamos da agilidade de reiniciar or service assim que salvamos nossas alterações.
没有本地环境存在,与nodemonNode JS 一样,它可以作为其他更改结果的辅助工具。
从此,您可以改变自己的想法,并准确地改变自己的形象。为此,需要编译图像 ( docker build) 并执行新操作 ( docker run)。
您可以使用热/实时重新加载,可以定义卷连接或本地连接或容器连接,并以更改连接方式进行设计。例如,使用 Python 构建 uma API(例如 FastAPI)并执行 Gunicorn,然后执行以下操作:
不Dockerfile
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.11
COPY requirements.txt /usr/src/requirements.txt
RUN pip install -r /usr/src/requirements.txt
COPY ./app /app/app
不docker-compose.yaml
services:
api:
build: .
ports:
- '8080:80'
volumes:
- ./app/:/app/app
command:
- /start-reload.sh
在此情况下,您可以更改任何内容,或为容器提供服务。请注意以下信息:Node,Erick Wendel 发布的 freeCodeCamp 说明,以帮助您进行配置。
关于更多信息
官方文档是关于 LINUX 技巧的主要参考资料,由Jeferson Fernando提供。 Ele disponibilizou completamente de graça o livro Descomplicando o Docker depois de dar o treinamento de graça praça 5 mil pessoas (includeindo eu, na época um jovem padawan estagiário):
请在 YouTube 上解决自由或完成所有事项 。
如果您想完成 MUITO 和所有信息,是否可以将其与没有运河删除和指定的内容结合起来或添加类似的视频?
结论
Coloquei aqui tudo que eu precisioni pra conseguir trabalhar com docker nos últimos meses, do desenvolvimento do 0 até or deploy do service em produção.我想通过一些关于 LINUX 技巧的道德方面的改进来改进一些关于 LINUX 技巧的道德问题。
我不想在码头上工作,也不想使用这种方式,我不会在 Twitter 上发布任何内容,但我已经完成了。
E caso esse post tenha te ajudado de alguma forma, compartilha com alguém que você acha que também pode aproveitar.
我是这样的,我的帖子是这样的,我的视频是在 Youtube 上的!独立结果、帖子
da semana que vemDessa Semana Será sobre Terraform。我没有推特 pra saber mais!
Espero que isso tenha sido útil para alguém, até a próxima!
文章来源:https://dev.to/1cadumagalhaes/tudo-que-voce-precisa-saber-pra-usar-docker-1ehk
