大数跨境

Docker:第一天

Docker:第一天 索引目录
2025-01-10
4

Docker:服务容器

为什么需要容器?

容器对于现代应用程序部署和管理至关重要,因为它们提供:

  • 效率:与虚拟机相比,容器消耗的资源更少。

  • 一致性:确保应用程序在不同环境中的行为相同。

  • 可移植性:简化开发、测试和生产环境之间的应用程序迁移。

  • 可扩展性:可轻松扩展应用程序以满足需求。


什么是容器镜像?

容器镜像是一个轻量级的独立包,其中包含运行应用程序所需的一切:

  • 代码

  • 运行时

  • 系统工具

  • 图书馆

要点:

  • 容器是容器镜像的运行实例

  • 您可以从同一映像运行多个容器,从而实现水平扩展和环境复制。


Docker 中央存储库:Docker Hub

Docker Hub 是存储容器镜像的中央存储库。开发人员可以:

  • 下载预先构建的图像。

  • 发布自定义图像。

  • 管理私有和公共容器镜像。


在 Docker 中启动 Nginx Web 服务器

启动 Nginx Web 服务器:

要运行开源 Nginx Web 服务器:

docker container run --publish <host_port:container_port> <image_name>

例子:

docker container run --publish 8080:80 nginx

停止容器前台进程:

使用键盘快捷键:

Ctrl + C

在后台启动容器(分离模式):

在后台运行容器:

docker container run --publish <host_port:container_port> --detach <image_name>

例子:

docker container run --publish 8080:80 --detach nginx

列出和管理容器

列出正在运行的容器:

  • 现代命令:

docker container ls
  • 旧方法:

docker ps

列出所有容器(正在运行和已停止):

docker container ls -a

停止正在运行的容器:

docker container stop <container_id>

runstart命令 之间的区别

run

  • 总是启动一个新容器

start

  • 启动已停止的现有容器。


命名容器

为容器分配特定名称:

docker container run --publish 80:80 --detach --name <name> <image_name>

例子:

docker container run --publish 80:80 --detach --name my-nginx nginx

查看容器中的日志和进程

查看特定容器的日志:

docker container logs <container_name>/<container_id>

查看容器内正在运行的进程:

docker container top <container_id>

删除未使用的容器

通过指定 ID 来删除未使用的容器:

docker container rm <space_separated_container_ids>

容器与虚拟机


特征 容器 虚拟机 (VM)
虚拟化层 操作系统 (OS) 硬件
资源分配 轻巧便携 资源密集型
可移植性 高度便携 便携性有限


重点摘要:

  • 容器虚拟化操作系统,而虚拟机虚拟化硬件

  • 容器是现代可扩展应用程序的理想选择。


资源管理和监控

查看容器的资源消耗情况:

docker stats [container_name or container_id]

获取有关容器的详细信息:

docker inspect [container_name or container_id]

交互式容器

以交互模式启动容器:

docker run -it [image_name or image_id] [command]

选项:

  • -i:即使未连接,也保持 STDIN 开放。

  • -t:分配伪终端(TTY)。

例子:

docker run -it ubuntu bash

在正在运行的容器中运行命令

在正在运行的容器内执行命令:

docker exec [options] [container_name or container_id] [command]

参数:

  • [options]:附加选项(例如,-it用于交互模式)。

  • [container_name or container_id]:正在运行的容器的名称或ID。

  • [command]:在容器内执行的命令。

例子:

docker exec -it my-nginx bash


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读1.2k
粉丝0
内容444