Docker 容器管理和镜像管理基础知识(二)

Docker 容器管理和镜像管理

容器管理

docker create 命令用于在 Docker 中创建一个新的容器,但不会自动启动它。这个命令会返回容器的 ID,可以使用它来
进一步操作容器,这也是与 docker run 命令的一个区别

以下是 docker create 的基本用法:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:可以使用一系列选项来配置容器的行为,如端口映射、数据卷挂载、环境变量设置等。
  • IMAGE:指定要使用的镜像,可以是本地镜像的名称或远程仓库中的镜像。
  • COMMAND:可选参数,指定容器启动时要执行的命令。
  • ARG...:可选参数,传递给容器启动命令的参数。

以下是一些常用的选项:

  • -i, --interactive:打开容器的标准输入,允许交互操作。
  • -t, --tty:为容器分配一个伪终端。
  • --name CONTAINER_NAME:为容器指定一个自定义的名称。
  • -e, --env KEY=VALUE:设置容器的环境变量。
  • -v, --volume SOURCE:DEST:挂载主机上的目录或数据卷到容器内部。
  • -p, --publish HOST_PORT:CONTAINER_PORT:将容器的端口映射到主机的端口上。

以下是一个示例:


查看镜像
docker images 

从镜像 my-ubuntu tag:latest 创建一个容器 my-container2
docker create -it --name my-container2 -p 8080:80 my-ubuntu:latest

启动容器
docker start my-container2

查看容器是否启动
docker ps

docker rundocker create 区别

docker create:

  • docker create 命令用于在 Docker 中创建一个新的容器,但不会自动启动它。
  • 创建容器后,会返回容器的 ID,可以使用该 ID 进一步操作容器,如启动、停止、删除等。
  • docker create 命令通常与 docker start 命令一起使用,以分别创建和启动容器。

docker run:

  • docker run 命令用于创建并立即启动一个新的容器。
  • 它相当于 docker createdocker start 命令的组合,可以在一步中创建和启动容器。
  • docker run 命令提供了更便捷的方式来创建和启动容器,适用于大多数常见的容器使用场景。

为什么会设计两个命令呢?

  • 设计上的灵活性:Docker 设计了两个命令,以便在不同的场景下提供更多的灵活性。docker create 提供了更细粒度
    的控制,允许在创建容器后进行进一步的配置和准备工作,然后手动启动容器。而 docker run 则提供了一种简化的方
    式,可以在一步中创建和启动容器。

  • 工作流程的不同:docker create 适用于需要在容器启动之前执行额外操作的场景,例如在容器启动之前挂载数据卷、
    设置环境变量等。而 docker run 适用于直接启动容器并运行应用程序的场景,它通常用于常见的容器使用场景。

总之,docker createdocker run 提供了不同的方式来创建和启动容器,可以根据具体的需求和工作流程选择合适的命令。
对于简单的容器启动,docker run 是更常用和方便的选择。而对于需要更多控制和定制的场景,可以使用 docker create
docker start 命令来分别创建和启动容器。

  • docker cp 命令用于在 Docker 容器和主机之间复制文件或目录。
docker cp 命令的基本语法:

docker cp <source> <destination>

<source>:指定要复制的文件或目录的路径。可以是容器内的路径或主机上的路径。
<destination>:指定目标位置的路径。可以是容器内的路径或主机上的路径。

从容器复制文件到主机:
docker cp <container_name_or_id>:<source_path> <destination_path>

从名为 mycontainer 的容器复制 /app/file.txt 文件到主机的 /tmp 目录:
eg: docker cp mycontainer:/app/file.txt /tmp/file.txt

从主机复制文件到容器:
docker cp <source_path> <container_name_or_id>:<destination_path>

将主机上的 /tmp/file.txt 文件复制到名为 mycontainer 的容器的 /app 目录:
eg:docker cp /tmp/file.txt mycontainer:/app/file.txt

注意事项:

当复制文件到容器时,如果目标路径不存在,Docker 会自动创建目标路径。
当复制文件到容器时,目标路径不能是符号链接。
当复制目录时,目录本身和其中的内容都会被复制。
  • docker 端口映射
当使用 docker run 命令时,通过 -p 或 --publish 参数可以设置容器的端口映射,将容器内部的端口映射到主机的端口上。

docker run -d -p 8888:8080 --name mycontainer your-image

-d:以后台模式运行容器。
-p 8888:8080:将主机的 8888 端口映射到容器的 8080 端口上。
--name mycontainer:为容器指定一个名称。
your-image:要运行的容器镜像。

现在,可以通过在浏览器中访问 http://localhost:8888 来访问容器内部的 Web 应用程序。流量将被重定向到容器的 8080 端口。
  • docker 的网络模式
在 Docker 中,有几种常见的网络模式可供选择,包括默认的桥接网络、主机网络和覆盖网络。以下是这些网络模式的特点、优缺
点和适用场景的概述:

桥接网络(Bridge Network):

特点:默认的网络模式,每个容器分配一个独立的 IP 地址,可以通过容器名称进行通信。
优点:隔离性好,容器可以在同一主机的不同网络命名空间中运行。
缺点:不适用于多主机环境,容器之间需要通过端口映射才能访问。
适用场景:单主机上多个容器之间需要相互通信的情况,比如微服务架构。
主机网络(Host Network):

特点:容器与主机共享网络命名空间,直接使用主机的 IP 地址和端口。
优点:网络性能好,容器无需通过端口映射即可访问主机网络。
缺点:缺乏隔离性,容器与主机共享网络栈。
适用场景:对网络性能要求较高、需要容器与主机共享网络的情况,比如网络工具、监控工具等。
覆盖网络(Overlay Network):

特点:使用 Docker Swarm 模式创建的多主机集群环境下的网络模式,跨主机通信使用 Overlay 网络。
优点:容器可以在多个主机上通过 Overlay 网络进行通信。
缺点:配置和管理复杂,需要使用 Swarm 模式。
适用场景:在多主机环境下,需要容器之间跨主机通信的情况,比如横向扩展应用程序。

docker run -d --network=bridge --name mycontainer your-image

使用 --network=bridge 参数来指定容器使用默认的桥接网络模式。你可以将 bridge 替换为其他网络模式,如 host 或 overlay
  • docekr 资源限定
在 Docker 中,你可以为容器分配资源限制,如 CPU 和内存限制。

通过 --cpus 参数设置容器的 CPU 限制。例如,设置容器的 CPU 限制为 0.5:
docker run -d --cpus=0.5 --name mycontainer your-image

通过 --memory 参数设置容器的内存限制。例如,设置容器的内存限制为 512MB:
docker run -d --memory=512m --name mycontainer your-image
  • docker stats 容器资源监控
使用 docker stats 命令可以实时监控正在运行的容器的资源使用情况:
docker stats mycontainer

docker stats 命令将显示容器的 CPU 使用率、内存使用量、网络 I/O、磁盘 I/O 等信息,并以实时更新的方式显示。

可以使用 --format 参数来自定义输出格式,以满足特定的需求。例如,只显示 CPU 使用率和内存使用量:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

通过设置容器的资源限制和使用 docker stats 命令,你可以有效地管理和监控容器的资源使用情况
  • docker 镜像仓库
搜索镜像:

在 Docker Hub 或其他镜像仓库的网站上,使用搜索功能来查找你需要的镜像。可以通过关键字、镜像名称或镜像作者来进行搜索。
在搜索结果中,可以查看镜像的描述、标签和其他相关信息。
拉取镜像:

使用 docker pull 命令从镜像仓库中拉取镜像到本地。命令格式为:docker pull <镜像名称>:<标签>。
默认情况下,如果未指定标签,默认会拉取 latest 标签的镜像。
例如,要拉取 nginx 镜像的 latest 版本,可以执行:docker pull nginx:latest。
推送镜像:

如果你开发了自己的镜像,并希望将其推送到镜像仓库,需要先登录到镜像仓库。
使用 docker login 命令登录到 Docker Hub 或其他镜像仓库。需要提供用户名、密码和仓库地址。
登录成功后,可以使用 docker push 命令将本地的镜像推送到镜像仓库。命令格式为:docker push <镜像名称>:<标签>。
镜像标签:

镜像标签用于区分不同版本或变体的镜像。一个镜像可以有多个标签。
通常,latest 标签表示最新的版本,但最好使用特定的版本标签来确保镜像的可重复性和稳定性。
在拉取或推送镜像时,可以通过指定标签来选择特定版本的镜像。
例如,要拉取 nginx 镜像的 1.21.3 版本,可以执行:docker pull nginx:1.21.3。
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker镜像管理是使用Docker的重要方面之一。镜像Docker容器的基础,它们包含了应用程序和其依赖的所有文件和设置。在Docker中,我们可以使用命令行工具或Docker Hub等图形界面工具来管理镜像。我们可以通过搜索、下载、上传、删除、构建和推送镜像管理它们。此外,我们还可以使用Dockerfile来构建自己的镜像,以满足特定的需求。镜像管理对于Docker的使用和开发非常重要,因此我们需要掌握它的基本知识和技能。 ### 回答2: 随着云计算技术的不断发展,Docker作为一个轻量级的容器化技术被越来越多的人所使用,成为了应用程序部署和运行的重要工具。而Docker中最核心的概念就是镜像,它是Docker容器启动的基础,也是Docker应用部署和管理的基础。因此,在进行Docker应用开发和部署时,我们必须深入了解和掌握镜像管理的相关知识和技巧,方能更好地利用Docker来提高应用程序的开发效率和运行效率。 首先,我们需要了解Docker中的镜像是如何创建和管理的。Docker镜像是一个静态的文件,它包含了运行一个应用程序所需的一切文件和配置信息。创建Docker镜像的过程一般是通过使用Dockerfile文件进行定义,该文件中定义了应用程序的依赖关系、配置信息以及构建过程。当Dockerfile文件被执行时,会产生一个Docker镜像文件。在镜像管理过程中,我们可以使用Docker CLI命令来创建、查看、修改、删除和导出镜像文件等相关操作。 其次,我们需要了解如何通过镜像来启动容器容器Docker中运行应用程序的基本单元,它是基于Docker镜像创建的一个可运行的实例。启动容器需要使用Docker CLI命令,在运行命令时需要指定要使用的镜像名称和相关的容器运行参数。创建并运行容器后,我们可以通过Docker CLI命令来查看容器的状态、停止、删除等操作。 最后,我们需要了解Docker镜像管理和优化技巧。由于Docker镜像是一个静态的文件,因此它可以被缓存和重复利用,从而提高应用程序的运行效率。在Docker镜像管理过程中,我们可以使用Docker Registry来进行镜像的在线管理和发布,同时也可以使用Docker Compose和Kubernetes等容器编排工具来进行镜像的自动化部署和扩容。 总之,了解和掌握Docker镜像管理的相关知识和技巧将有助于我们更好地应用Docker技术进行应用程序部署和管理,提高应用程序的开发效率和运行效率,从而更好地满足不同场景下的应用需求。 ### 回答3: 在docker中,镜像是指用于创建容器的基础组件。因此,对于任何想要学习和使用docker的开发者来说,镜像管理是一个非常重要的方面。 在docker中,可以使用docker镜像命令来管理和操作镜像。其中包括以下几个方面: 1. 镜像的获取和下载。可以通过docker pull命令从docker hub上下载公共镜像,也可以通过docker build命令构建自己的镜像。 2. 镜像的查看和删除。可以使用docker images命令查看本地镜像列表,也可以使用docker rmi命令删除一个或多个本地镜像。 3. 镜像的导入和导出。可以使用docker save将本地镜像保存到一个文件中,并使用docker load将其导入到其他机器上。 4. 镜像的打标签和推送。可以使用docker tag命令给镜像打上标签,并使用docker push命令将镜像推送到docker hub或其他私有仓库中。 镜像管理的具体操作方法和命令可以通过docker官方文档进行学习和查询。在实际开发中,镜像管理的合理使用可以提升开发效率、提高系统稳定性和可靠性。 总而言之,镜像管理docker使用的重要环节之一,学习和掌握相关的知识和技能,对于docker应用的开发和部署都有着重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值